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
b7a95862
Commit
b7a95862
authored
Oct 03, 2012
by
Claes Sjofors
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Gtk print dialog added
parent
20901257
Changes
63
Hide whitespace changes
Inline
Side-by-side
Showing
63 changed files
with
1000 additions
and
63 deletions
+1000
-63
src/changelog.txt
src/changelog.txt
+1
-0
src/doc/man/en_us/upgrade48.odt
src/doc/man/en_us/upgrade48.odt
+0
-0
src/doc/man/en_us/upgrade48.pdf
src/doc/man/en_us/upgrade48.pdf
+0
-0
src/msg/co/src/co_wow_msg.msg
src/msg/co/src/co_wow_msg.msg
+46
-0
src/msg/used_facility_numbers.txt
src/msg/used_facility_numbers.txt
+1
-0
src/wbl/pwrb/src/pwrb_c_opplace.wb_load
src/wbl/pwrb/src/pwrb_c_opplace.wb_load
+8
-0
src/wbl/pwrb/src/pwrb_td_opplaceoptionsmask.wb_load
src/wbl/pwrb/src/pwrb_td_opplaceoptionsmask.wb_load
+10
-0
wb/changelog.txt
wb/changelog.txt
+3
-0
wb/lib/wb/gtk/wb_watt_gtk.cpp
wb/lib/wb/gtk/wb_watt_gtk.cpp
+19
-0
wb/lib/wb/gtk/wb_watt_gtk.h
wb/lib/wb/gtk/wb_watt_gtk.h
+2
-0
wb/lib/wb/gtk/wb_wda_gtk.cpp
wb/lib/wb/gtk/wb_wda_gtk.cpp
+9
-1
wb/lib/wb/gtk/wb_wda_gtk.h
wb/lib/wb/gtk/wb_wda_gtk.h
+1
-0
wb/lib/wb/gtk/wb_wnav_gtk.cpp
wb/lib/wb/gtk/wb_wnav_gtk.cpp
+9
-0
wb/lib/wb/gtk/wb_wnav_gtk.h
wb/lib/wb/gtk/wb_wnav_gtk.h
+1
-0
wb/lib/wb/motif/wb_wda_motif.cpp
wb/lib/wb/motif/wb_wda_motif.cpp
+13
-0
wb/lib/wb/motif/wb_wda_motif.h
wb/lib/wb/motif/wb_wda_motif.h
+1
-0
wb/lib/wb/motif/wb_wnav_motif.cpp
wb/lib/wb/motif/wb_wnav_motif.cpp
+14
-0
wb/lib/wb/motif/wb_wnav_motif.h
wb/lib/wb/motif/wb_wnav_motif.h
+1
-0
wb/lib/wb/src/wb_watt.cpp
wb/lib/wb/src/wb_watt.cpp
+14
-0
wb/lib/wb/src/wb_watt.h
wb/lib/wb/src/wb_watt.h
+2
-0
wb/lib/wb/src/wb_wda.cpp
wb/lib/wb/src/wb_wda.cpp
+2
-10
wb/lib/wb/src/wb_wda.h
wb/lib/wb/src/wb_wda.h
+3
-1
wb/lib/wb/src/wb_wnav.cpp
wb/lib/wb/src/wb_wnav.cpp
+0
-8
wb/lib/wb/src/wb_wnav.h
wb/lib/wb/src/wb_wnav.h
+1
-1
wb/lib/wb/src/wb_wtt.cpp
wb/lib/wb/src/wb_wtt.cpp
+15
-10
xtt/changelog.txt
xtt/changelog.txt
+3
-0
xtt/exe/rt_xtt/gtk/rt_xtt_gtk.cpp
xtt/exe/rt_xtt/gtk/rt_xtt_gtk.cpp
+25
-1
xtt/exe/rt_xtt/gtk/rt_xtt_gtk.h
xtt/exe/rt_xtt/gtk/rt_xtt_gtk.h
+1
-0
xtt/exe/rt_xtt/motif/rt_xtt_motif.cpp
xtt/exe/rt_xtt/motif/rt_xtt_motif.cpp
+11
-0
xtt/exe/rt_xtt/motif/rt_xtt_motif.h
xtt/exe/rt_xtt/motif/rt_xtt_motif.h
+1
-0
xtt/exe/rt_xtt/src/rt_xtt_main.h
xtt/exe/rt_xtt/src/rt_xtt_main.h
+1
-0
xtt/exe/rt_xtt/src/xtt_main.cpp
xtt/exe/rt_xtt/src/xtt_main.cpp
+6
-8
xtt/lib/cow/gtk/cow_wow_gtk.cpp
xtt/lib/cow/gtk/cow_wow_gtk.cpp
+101
-0
xtt/lib/cow/gtk/cow_wow_gtk.h
xtt/lib/cow/gtk/cow_wow_gtk.h
+5
-0
xtt/lib/cow/src/cow_wow.cpp
xtt/lib/cow/src/cow_wow.cpp
+2
-0
xtt/lib/cow/src/cow_wow.h
xtt/lib/cow/src/cow_wow.h
+8
-0
xtt/lib/flow/gtk/flow_draw_gtk.cpp
xtt/lib/flow/gtk/flow_draw_gtk.cpp
+9
-0
xtt/lib/flow/gtk/flow_draw_gtk.h
xtt/lib/flow/gtk/flow_draw_gtk.h
+2
-0
xtt/lib/flow/gtk/flow_printdraw_gtk.cpp
xtt/lib/flow/gtk/flow_printdraw_gtk.cpp
+290
-0
xtt/lib/flow/gtk/flow_printdraw_gtk.h
xtt/lib/flow/gtk/flow_printdraw_gtk.h
+72
-0
xtt/lib/flow/src/flow.h
xtt/lib/flow/src/flow.h
+5
-0
xtt/lib/flow/src/flow_browapi.cpp
xtt/lib/flow/src/flow_browapi.cpp
+11
-0
xtt/lib/flow/src/flow_browapi.h
xtt/lib/flow/src/flow_browapi.h
+3
-0
xtt/lib/flow/src/flow_browctx.cpp
xtt/lib/flow/src/flow_browctx.cpp
+54
-0
xtt/lib/flow/src/flow_browctx.h
xtt/lib/flow/src/flow_browctx.h
+3
-0
xtt/lib/flow/src/flow_draw.h
xtt/lib/flow/src/flow_draw.h
+3
-0
xtt/lib/flow/src/flow_printdraw.h
xtt/lib/flow/src/flow_printdraw.h
+61
-0
xtt/lib/xtt/gtk/xtt_clog_gtk.cpp
xtt/lib/xtt/gtk/xtt_clog_gtk.cpp
+30
-0
xtt/lib/xtt/gtk/xtt_clog_gtk.h
xtt/lib/xtt/gtk/xtt_clog_gtk.h
+2
-0
xtt/lib/xtt/gtk/xtt_evlist_gtk.cpp
xtt/lib/xtt/gtk/xtt_evlist_gtk.cpp
+19
-0
xtt/lib/xtt/gtk/xtt_evlist_gtk.h
xtt/lib/xtt/gtk/xtt_evlist_gtk.h
+2
-0
xtt/lib/xtt/gtk/xtt_xcolwind_gtk.cpp
xtt/lib/xtt/gtk/xtt_xcolwind_gtk.cpp
+20
-0
xtt/lib/xtt/gtk/xtt_xcolwind_gtk.h
xtt/lib/xtt/gtk/xtt_xcolwind_gtk.h
+2
-0
xtt/lib/xtt/src/xtt_clog.cpp
xtt/lib/xtt/src/xtt_clog.cpp
+8
-0
xtt/lib/xtt/src/xtt_clog.h
xtt/lib/xtt/src/xtt_clog.h
+2
-0
xtt/lib/xtt/src/xtt_ev.cpp
xtt/lib/xtt/src/xtt_ev.cpp
+30
-18
xtt/lib/xtt/src/xtt_evlist.cpp
xtt/lib/xtt/src/xtt_evlist.cpp
+1
-1
xtt/lib/xtt/src/xtt_evlist.h
xtt/lib/xtt/src/xtt_evlist.h
+2
-1
xtt/lib/xtt/src/xtt_hist.cpp
xtt/lib/xtt/src/xtt_hist.cpp
+7
-3
xtt/lib/xtt/src/xtt_xcolwind.cpp
xtt/lib/xtt/src/xtt_xcolwind.cpp
+6
-0
xtt/lib/xtt/src/xtt_xcolwind.h
xtt/lib/xtt/src/xtt_xcolwind.h
+2
-0
xtt/lib/xtt/src/xtt_xnav.cpp
xtt/lib/xtt/src/xtt_xnav.cpp
+11
-0
xtt/lib/xtt/src/xtt_xnav.h
xtt/lib/xtt/src/xtt_xnav.h
+3
-0
No files found.
src/changelog.txt
View file @
b7a95862
...
...
@@ -220,3 +220,4 @@
120821 cs cnv Xtthelp html pages generated for included helpfiles
120823 cs plc Plc, serveral processes, handling of error log and process status
120824 cs plc Plc, several plc processes, signal handling with rt_ini at start and restart
120926 cs neth Size check in subscription client message to avoid rt_neth crash at bad network
src/doc/man/en_us/upgrade48.odt
View file @
b7a95862
No preview for this file type
src/doc/man/en_us/upgrade48.pdf
View file @
b7a95862
No preview for this file type
src/msg/co/src/co_wow_msg.msg
0 → 100644
View file @
b7a95862
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2012 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! co_wow_msg.msg -- System information
!
! Return codes from system information routines.
!
.facility WOW,322 /prefix = WOW__ ! System information
success <successful completion> /succ
printdialogdisabled <print dialog disabled> /error
nyi <not yet implemented> /error
.end
src/msg/used_facility_numbers.txt
View file @
b7a95862
...
...
@@ -68,3 +68,4 @@
317 xatt
320 login
321 syi
322 wow
src/wbl/pwrb/src/pwrb_c_opplace.wb_load
View file @
b7a95862
...
...
@@ -314,6 +314,14 @@ SObject pwrb:Class
EndBody
EndObject
!/**
! Default printer.
!*/
Object Printer $Attribute 48
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
!/**
! Obsolete from V4.7.0.
!*/
Object OpNumber $Attribute 2
...
...
src/wbl/pwrb/src/pwrb_td_opplaceoptionsmask.wb_load
View file @
b7a95862
...
...
@@ -71,6 +71,16 @@ SObject pwrb:Type
Attr Value = 2
EndBody
EndObject
!/**
! Enable Print Dialog.
!*/
Object EnablePrintDialog $Bit
Body SysBody
Attr PgmName = "EnablePrintDialog"
Attr Text = "EnablePrintDialog"
Attr Value = 4
EndBody
EndObject
EndObject
EndSObject
...
...
wb/changelog.txt
View file @
b7a95862
...
...
@@ -212,4 +212,7 @@
120906 cs wb Build method for classdef to copy object graph
120906 cs wb Xtt and wb distinction
120912 cs wb wb, comment in autogenerated opt-file
120919 cs wb QCom disable auto connect between nodes in a project (refs #117)
120920 cs dist Distributor, display version info for package (refs #118)
120920 cs dist Distributor, next page, prev page and scroll events added
wb/lib/wb/gtk/wb_watt_gtk.cpp
View file @
b7a95862
...
...
@@ -204,6 +204,13 @@ void WAttGtk::activate_exit( GtkWidget *w, gpointer data)
delete
watt
;
}
void
WAttGtk
::
activate_print
(
GtkWidget
*
w
,
gpointer
data
)
{
WAtt
*
watt
=
(
WAtt
*
)
data
;
watt
->
activate_print
();
}
void
WAttGtk
::
activate_help
(
GtkWidget
*
w
,
gpointer
data
)
{
CoXHelp
::
dhelp
(
"objecteditor_refman"
,
0
,
navh_eHelpFile_Other
,
...
...
@@ -233,6 +240,14 @@ gboolean WAttGtk::action_inputfocus( GtkWidget *w, GdkEvent *event, gpointer dat
return
FALSE
;
}
void
WAttGtk
::
print
(
const
char
*
title
)
{
pwr_tStatus
sts
;
CoWowGtk
::
CreateBrowPrintDialogGtk
(
title
,
wattnav
->
brow
->
ctx
,
flow_eOrientation_Portrait
,
(
void
*
)
toplevel
,
&
sts
);
}
#if 0
void WAttGtk::valchanged_cmd_input( Widget w, XEvent *event)
{
...
...
@@ -508,7 +523,11 @@ WAttGtk::WAttGtk(
GtkWidget
*
file_close
=
gtk_image_menu_item_new_from_stock
(
GTK_STOCK_CLOSE
,
accel_g
);
g_signal_connect
(
file_close
,
"activate"
,
G_CALLBACK
(
activate_exit
),
this
);
GtkWidget
*
file_print
=
gtk_image_menu_item_new_from_stock
(
GTK_STOCK_PRINT
,
accel_g
);
g_signal_connect
(
file_print
,
"activate"
,
G_CALLBACK
(
activate_print
),
this
);
GtkMenu
*
file_menu
=
(
GtkMenu
*
)
g_object_new
(
GTK_TYPE_MENU
,
NULL
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_print
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_close
);
GtkWidget
*
file
=
gtk_menu_item_new_with_mnemonic
(
"_File"
);
...
...
wb/lib/wb/gtk/wb_watt_gtk.h
View file @
b7a95862
...
...
@@ -83,10 +83,12 @@ class WAttGtk : public WAtt {
int
open_changevalue
(
char
*
name
);
void
change_value_close
();
void
pop
();
void
print
(
const
char
*
title
);
static
void
activate_change_value
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_close_changeval
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_exit
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_print
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_help
(
GtkWidget
*
w
,
gpointer
data
);
static
gboolean
action_inputfocus
(
GtkWidget
*
w
,
GdkEvent
*
event
,
gpointer
data
);
static
void
valchanged_cmd_input
(
GtkWidget
*
w
,
gpointer
data
);
...
...
wb/lib/wb/gtk/wb_wda_gtk.cpp
View file @
b7a95862
...
...
@@ -75,6 +75,14 @@ void WdaGtk::set_prompt( const char *prompt)
}
}
void
WdaGtk
::
print
(
const
char
*
title
)
{
pwr_tStatus
sts
;
wow
->
CreateBrowPrintDialog
(
title
,
wdanav
->
brow
->
ctx
,
flow_eOrientation_Portrait
,
(
void
*
)
toplevel
,
&
sts
);
}
void
WdaGtk
::
change_value
(
int
set_focus
)
{
int
sts
;
...
...
@@ -186,7 +194,7 @@ void WdaGtk::activate_print( GtkWidget *w, gpointer data)
{
Wda
*
wda
=
(
Wda
*
)
data
;
wda
->
print
();
wda
->
activate_
print
();
}
void
WdaGtk
::
activate_export_text
(
GtkWidget
*
w
,
gpointer
data
)
...
...
wb/lib/wb/gtk/wb_wda_gtk.h
View file @
b7a95862
...
...
@@ -89,6 +89,7 @@ class WdaGtk : public Wda {
void
pop
();
void
open_class_dialog
(
char
*
hierstr
,
char
*
classstr
);
void
create_class_dialog
();
void
print
(
const
char
*
title
);
static
void
activate_change_value
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_close_changeval
(
GtkWidget
*
w
,
gpointer
data
);
...
...
wb/lib/wb/gtk/wb_wnav_gtk.cpp
View file @
b7a95862
...
...
@@ -140,6 +140,7 @@ WNavGtk::WNavGtk(
wow
=
new
CoWowGtk
(
parent_wid
);
toplevel
=
form_widget
;
*
status
=
1
;
}
...
...
@@ -212,6 +213,14 @@ void WNavGtk::trace_scan( WNavGtk *wnav)
}
}
void
WNavGtk
::
print
(
const
char
*
title
)
{
pwr_tStatus
sts
;
wow
->
CreateBrowPrintDialog
(
title
,
brow
->
ctx
,
flow_eOrientation_Portrait
,
(
void
*
)
0
,
&
sts
);
}
int
WNavGtk
::
get_selection
(
char
*
str
,
int
len
)
{
int
sts
;
...
...
wb/lib/wb/gtk/wb_wnav_gtk.h
View file @
b7a95862
...
...
@@ -71,6 +71,7 @@ class WNavGtk : public WNav {
void
pop
();
void
set_inputfocus
(
int
focus
);
void
print
(
const
char
*
title
);
void
trace_start
();
void
set_selection_owner
();
Ge
*
ge_new
(
char
*
graph_name
,
int
nojournal
);
...
...
wb/lib/wb/motif/wb_wda_motif.cpp
View file @
b7a95862
...
...
@@ -105,6 +105,19 @@ void WdaMotif::set_prompt( const char *prompt)
XmStringFree
(
cstr
);
}
void
WdaMotif
::
print
(
const
char
*
title
)
{
pwr_tFileName
filename
=
"$pwrp_tmp/wda.ps"
;
pwr_tCmd
cmd
;
int
sts
;
dcli_translate_filename
(
filename
,
filename
);
wdanav
->
print
(
filename
);
sprintf
(
cmd
,
"wb_gre_print.sh %s"
,
filename
);
sts
=
system
(
cmd
);
}
void
WdaMotif
::
change_value
(
int
set_focus
)
{
int
sts
;
...
...
wb/lib/wb/motif/wb_wda_motif.h
View file @
b7a95862
...
...
@@ -83,6 +83,7 @@ class WdaMotif : public Wda {
void
change_value_close
();
void
pop
();
void
open_class_dialog
(
char
*
hierstr
,
char
*
classstr
);
void
print
(
const
char
*
title
);
static
void
enable_set_focus
(
WdaMotif
*
wda
);
static
void
disable_set_focus
(
WdaMotif
*
wda
,
int
time
);
...
...
wb/lib/wb/motif/wb_wnav_motif.cpp
View file @
b7a95862
...
...
@@ -247,6 +247,20 @@ void WNavMotif::set_selection_owner()
selection_owner
=
1
;
}
void
WNavMotif
::
print
(
const
char
*
title
)
{
char
filename
[
80
]
=
"pwrp_tmp:wnav.ps"
;
char
cmd
[
200
];
dcli_translate_filename
(
filename
,
filename
);
brow_Print
(
brow
->
ctx
,
filename
);
#if defined OS_POSIX
sprintf
(
cmd
,
"wb_gre_print.sh %s"
,
filename
);
sts
=
system
(
cmd
);
#endif
}
void
WNavMotif
::
create_popup_menu
(
pwr_tAttrRef
aref
,
int
x
,
int
y
)
{
short
x1
,
y1
;
...
...
wb/lib/wb/motif/wb_wnav_motif.h
View file @
b7a95862
...
...
@@ -70,6 +70,7 @@ class WNavMotif : public WNav {
void
pop
();
void
set_inputfocus
(
int
focus
);
void
print
(
const
char
*
title
);
void
trace_start
();
void
set_selection_owner
();
Ge
*
ge_new
(
char
*
graph_name
,
int
nojournal
);
...
...
wb/lib/wb/src/wb_watt.cpp
View file @
b7a95862
...
...
@@ -64,6 +64,20 @@ void WAtt::change_value_cb( void *watt)
((
WAtt
*
)
watt
)
->
change_value
(
1
);
}
void
WAtt
::
activate_print
()
{
char
*
namep
;
pwr_tStatus
sts
;
int
size
;
pwr_tAName
aname
;
sts
=
ldh_AttrRefToName
(
ldhses
,
&
aref
,
ldh_eName_VolPath
,
&
namep
,
&
size
);
if
(
EVEN
(
sts
))
return
;
strcpy
(
aname
,
namep
);
print
(
aname
);
}
void
WAtt
::
set_editmode
(
int
editmode
,
ldh_tSesContext
ldhses
)
{
this
->
ldhses
=
ldhses
;
...
...
wb/lib/wb/src/wb_watt.h
View file @
b7a95862
...
...
@@ -90,7 +90,9 @@ class WAtt {
virtual
void
change_value
(
int
set_focus
)
{}
virtual
void
change_value_close
()
{}
virtual
void
pop
()
{}
virtual
void
print
(
const
char
*
title
)
{}
void
activate_print
();
void
set_editmode
(
int
editmode
,
ldh_tSesContext
ldhses
);
int
open_changevalue
(
const
char
*
name
,
int
close
=
0
);
static
void
message_cb
(
void
*
watt
,
char
severity
,
const
char
*
message
);
...
...
wb/lib/wb/src/wb_wda.cpp
View file @
b7a95862
...
...
@@ -74,17 +74,9 @@ void Wda::change_value_cb( void *wda)
((
Wda
*
)
wda
)
->
change_value
(
1
);
}
void
Wda
::
print
()
void
Wda
::
activate_
print
()
{
pwr_tFileName
filename
=
"$pwrp_tmp/wda.ps"
;
pwr_tCmd
cmd
;
int
sts
;
dcli_translate_filename
(
filename
,
filename
);
wdanav
->
print
(
filename
);
sprintf
(
cmd
,
"wb_gre_print.sh %s"
,
filename
);
sts
=
system
(
cmd
);
print
(
"Speadsheet Editor"
);
}
void
Wda
::
print_textfile
()
...
...
wb/lib/wb/src/wb_wda.h
View file @
b7a95862
...
...
@@ -98,7 +98,8 @@ class Wda {
virtual
void
change_value
(
int
set_focus
)
{}
virtual
void
change_value_close
()
{}
virtual
void
pop
()
{}
virtual
void
print
(
const
char
*
title
)
{}
int
open_changevalue
(
char
*
name
);
void
set_editmode
(
int
editmode
,
ldh_tSesContext
ldhses
);
void
open_class_dialog
();
...
...
@@ -108,6 +109,7 @@ class Wda {
void
print
();
void
print_textfile
();
void
import_textfile
();
void
activate_print
();
static
void
message_cb
(
void
*
wda
,
char
severity
,
const
char
*
message
);
static
void
change_value_cb
(
void
*
wda
);
...
...
wb/lib/wb/src/wb_wnav.cpp
View file @
b7a95862
...
...
@@ -643,14 +643,6 @@ WNav::~WNav()
{
}
//
// Print
//
void
WNav
::
print
(
char
*
filename
)
{
brow_Print
(
brow
->
ctx
,
filename
);
}
//
// Get current zoom factor
//
...
...
wb/lib/wb/src/wb_wnav.h
View file @
b7a95862
...
...
@@ -316,6 +316,7 @@ class WNav : public WUtility{
virtual
void
pop
()
{}
virtual
void
set_inputfocus
(
int
focus
)
{}
virtual
void
print
(
const
char
*
title
)
{}
virtual
void
trace_start
()
{}
virtual
void
set_selection_owner
()
{}
virtual
Ge
*
ge_new
(
char
*
graph_name
,
int
nojournal
)
{
return
0
;}
...
...
@@ -353,7 +354,6 @@ class WNav : public WUtility{
int
create_object_item
(
pwr_tObjid
objid
,
brow_tNode
dest
,
flow_eDest
dest_code
,
void
**
item
,
int
is_root
);
void
print
(
char
*
filename
);
void
zoom
(
double
zoom_factor
);
void
get_zoom
(
double
*
zoom_factor
);
void
unzoom
();
...
...
wb/lib/wb/src/wb_wtt.cpp
View file @
b7a95862
...
...
@@ -956,22 +956,27 @@ int Wtt::get_wbctx( void *ctx, ldh_tWBContext *wbctx)
void
Wtt
::
activate_print
()
{
char
filename
[
80
]
=
"pwrp_tmp:wnav.ps"
;
char
cmd
[
200
];
int
sts
;
ldh_sVolumeInfo
info
;
int
sts
;
int
size
;
char
title
[
80
];
if
(
!
ldhses
)
return
;
sts
=
ldh_GetVolumeInfo
(
ldh_SessionToVol
(
ldhses
),
&
info
);
if
(
EVEN
(
sts
))
return
;
strcpy
(
title
,
"PwR "
);
sts
=
ldh_VolumeIdToName
(
ldh_SessionToWB
(
ldhses
),
info
.
Volume
,
&
title
[
4
],
sizeof
(
title
)
-
4
,
&
size
);
if
(
EVEN
(
sts
))
return
;
if
(
!
focused_wnav
)
set_focus_default
();
set_clock_cursor
();
dcli_translate_filename
(
filename
,
filename
);
focused_wnav
->
print
(
filename
);
#if defined OS_POSIX
sprintf
(
cmd
,
"wb_gre_print.sh %s"
,
filename
);
sts
=
system
(
cmd
);
#endif
focused_wnav
->
print
(
title
);
reset_cursor
();
}
...
...
xtt/changelog.txt
View file @
b7a95862
...
...
@@ -248,3 +248,6 @@
120823 cs ge Ge command 'move selected' bugfix (refs #42)
120827 cs xtt Alarm window, button to ack all alarms, and xtt command 'eventlist ack/all'
120907 cs xtt Xtt display values as hex, octal, binary etc
120912 cs xtt Xtt, alarm beep wasn't controled by OpPlace AlarmBell attribute
120919 cs xtt Xtt, bugfix in display of Do channel flags (refs #116)
120920 cs xtt Xtt bugfix, Hold and Scantime didn't work in Dv object graph
xtt/exe/rt_xtt/gtk/rt_xtt_gtk.cpp
View file @
b7a95862
...
...
@@ -293,6 +293,30 @@ void XttGtk::activate_print( GtkWidget *w, gpointer data)
xtt
->
activate_print
();
}
void
XttGtk
::
print
()
{
char
title
[
120
]
=
"Xtt "
;
char
nodename
[
80
];
pwr_tStatus
sts
;
syi_NodeName
(
&
sts
,
nodename
,
sizeof
(
nodename
));
if
(
ODD
(
sts
))
strcat
(
title
,
nodename
);
wow
->
CreateBrowPrintDialog
(
title
,
xnav
->
brow
->
ctx
,
flow_eOrientation_Portrait
,
(
void
*
)
toplevel
,
&
sts
);
if
(
sts
==
WOW__PRINTDIALOGDISABLED
)
{
pwr_tFileName
filename
;
pwr_tCmd
cmd
;
dcli_translate_filename
(
filename
,
"$pwrp_tmp/xnav.ps"
);
xnav
->
print
(
filename
);
sprintf
(
cmd
,
"$pwr_exe/rt_print.sh %s"
,
filename
);
system
(
cmd
);
}
}
void
XttGtk
::
activate_login
(
GtkWidget
*
w
,
gpointer
data
)
{
Xtt
*
xtt
=
(
Xtt
*
)
data
;
...
...
@@ -693,7 +717,7 @@ XttGtk::XttGtk( int argc, char *argv[], int *return_sts) :
// File Entry
GtkWidget
*
file_print
=
gtk_image_menu_item_new_with_mnemonic
(
CoWowGtk
::
translate_utf8
(
"_Print"
));
gtk_image_menu_item_set_image
(
GTK_IMAGE_MENU_ITEM
(
file_print
),
gtk_image_new_from_stock
(
"gtk-print"
,
GTK_ICON_SIZE_MENU
));
gtk_image_new_from_stock
(
GTK_STOCK_PRINT
,
GTK_ICON_SIZE_MENU
));
g_signal_connect
(
file_print
,
"activate"
,
G_CALLBACK
(
XttGtk
::
activate_print
),
this
);
GtkWidget
*
file_login
=
gtk_menu_item_new_with_mnemonic
(
CoWowGtk
::
translate_utf8
(
"_Login"
));
...
...
xtt/exe/rt_xtt/gtk/rt_xtt_gtk.h
View file @
b7a95862
...
...
@@ -84,6 +84,7 @@ class XttGtk : public Xtt {
void
set_prompt
(
const
char
*
prompt
);
void
open_change_value
();
void
create_input_dialog
();
void
print
();
static
void
close
(
void
*
ctx
,
int
terminate
);
static
void
set_dimension
(
void
*
ctx
,
int
width
,
int
height
);
...
...
xtt/exe/rt_xtt/motif/rt_xtt_motif.cpp
View file @
b7a95862
...
...
@@ -534,6 +534,17 @@ void XttMotif::valchanged_cmd_input( Widget w, XEvent *event, XmAnyCallbackStruc
}
}
void
XttMotif
::
print
()
{
pwr_tFileName
filename
;
pwr_tCmd
cmd
;
dcli_translate_filename
(
filename
,
"$pwrp_tmp/xnav.ps"
);
xnav
->
print
(
filename
);
sprintf
(
cmd
,
"$pwr_exe/rt_print.sh %s"
,
filename
);
system
(
cmd
);
}
int
main
(
int
argc
,
char
*
argv
[])
{
...
...
xtt/exe/rt_xtt/motif/rt_xtt_motif.h
View file @
b7a95862
...
...
@@ -83,6 +83,7 @@ class XttMotif : public Xtt {
void
(
*
ok_cb
)(
Xtt
*
,
char
*
));
void
set_prompt
(
const
char
*
prompt
);
void
open_change_value
();
void
print
();
static
void
close
(
void
*
ctx
,
int
terminate
);
static
void
set_dimension
(
void
*
ctx
,
int
width
,
int
height
);
...
...
xtt/exe/rt_xtt/src/rt_xtt_main.h
View file @
b7a95862
...
...
@@ -93,6 +93,7 @@ class Xtt {
void
(
*
ok_cb
)(
Xtt
*
,
char
*
))
{}
virtual
void
set_prompt
(
const
char
*
prompt
)
{}
virtual
void
open_change_value
()
{}
virtual
void
print
()
{}
void
list_opplace
();
static
void
opplace_selected_cb
(
void
*
ctx
,
char
*
text
);
...
...
xtt/exe/rt_xtt/src/xtt_main.cpp
View file @
b7a95862
...
...
@@ -283,14 +283,7 @@ void Xtt::selection_changed( void *ctx)
//
void
Xtt
::
activate_print
()
{
pwr_tFileName
filename
;
pwr_tCmd
cmd
;
dcli_translate_filename
(
filename
,
"$pwrp_tmp/xnav.ps"
);
xnav
->
print
(
filename
);
sprintf
(
cmd
,
"$pwr_exe/rt_print.sh %s"
,
filename
);
system
(
cmd
);
print
();
}
void
Xtt
::
activate_find
()
...
...
@@ -815,6 +808,11 @@ Xtt::Xtt( int *argc, char **argv[], int *return_sts) :
if
(
opp
->
AttachAudio
)
attach_audio
=
1
;
if
(
!
(
opp
->
Options
&
pwr_mOpPlaceOptionsMask_EnablePrintDialog
))
CoWow
::
DisablePrintDialog
();
if
(
strcmp
(
opp
->
Printer
,
""
)
!=
0
)
CoWow
::
SetDefaultPrinter
(
opp
->
Printer
);
}
if
(
quiet
)
...
...
xtt/lib/cow/gtk/cow_wow_gtk.cpp
View file @
b7a95862
...
...
@@ -48,6 +48,8 @@
#include "co_cdh.h"
#include "co_api.h"
#include "co_lng.h"
#include "co_wow_msg.h"
#include "flow_browapi.h"
#define WOW_MAXNAMES 400
...
...
@@ -60,6 +62,12 @@ typedef struct {
int
new_main
;
}
wow_sSelection
;
typedef
struct
{
char
title
[
80
];
brow_tCtx
brow_ctx
;
flow_eOrientation
orientation
;
}
wow_sPrintData
;
CoWowGtk
::~
CoWowGtk
()
{
...
...
@@ -1522,6 +1530,99 @@ void CoWowGtk::Wait( float time)
static
void
begin_print
(
GtkPrintOperation
*
operation
,
GtkPrintContext
*
context
,
gpointer
user_data
)
{
wow_sPrintData
*
print_data
=
(
wow_sPrintData
*
)
user_data
;
int
pages
;
brow_PrintGetPages
(
print_data
->
brow_ctx
,
flow_eOrientation_Portrait
,
&
pages
);
gtk_print_operation_set_n_pages
(
operation
,
pages
);
}
static
void
end_print
(
GtkPrintOperation
*
operation
,
GtkPrintContext
*
context
,
gpointer
user_data
)
{
wow_sPrintData
*
print_data
=
(
wow_sPrintData
*
)
user_data
;
free
(
print_data
);
}
static
void
draw_page
(
GtkPrintOperation
*
operation
,
GtkPrintContext
*
context
,
gint
page_nr
,
gpointer
user_data
)
{
wow_sPrintData
*
print_data
=
(
wow_sPrintData
*
)
user_data
;
brow_PrintDrawPage
(
print_data
->
brow_ctx
,
context
,
print_data
->
title
,
page_nr
,
flow_eOrientation_Portrait
);
}
static
void
request_page_setup
(
GtkPrintOperation
*
operation
,
GtkPrintContext
*
context
,
gint
page_nr
,
GtkPageSetup
*
setup
,
gpointer
user_data
)
{
wow_sPrintData
*
print_data
=
(
wow_sPrintData
*
)
user_data
;
if
(
print_data
->
orientation
==
flow_eOrientation_Landscape
)
gtk_page_setup_set_orientation
(
setup
,
GTK_PAGE_ORIENTATION_LANDSCAPE
);
else
gtk_page_setup_set_orientation
(
setup
,
GTK_PAGE_ORIENTATION_PORTRAIT
);
}
void
CoWowGtk
::
CreateBrowPrintDialogGtk
(
const
char
*
title
,
void
*
brow_ctx
,
int
orientation
,
void
*
parent_widget
,
pwr_tStatus
*
sts
)
{
static
GtkPrintSettings
*
settings
=
0
;
GtkPrintOperation
*
print
;
GtkPrintOperationResult
result
;
GtkPrintOperationAction
action
=
GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG
;
if
(
m_printdialog_disable
&&
strcmp
(
m_default_printer
,
""
)
==
0
)
{
*
sts
=
WOW__PRINTDIALOGDISABLED
;
return
;
}
wow_sPrintData
*
print_data
=
(
wow_sPrintData
*
)
calloc
(
1
,
sizeof
(
wow_sPrintData
));
print_data
->
brow_ctx
=
(
brow_tCtx
)
brow_ctx
;
print_data
->
orientation
=
(
flow_eOrientation
)
orientation
;
strncpy
(
print_data
->
title
,
title
,
sizeof
(
print_data
->
title
));
print
=
gtk_print_operation_new
();
if
(
settings
)
gtk_print_operation_set_print_settings
(
print
,
settings
);
else
settings
=
gtk_print_settings_new
();
if
(
strcmp
(
m_default_printer
,
""
)
!=
0
)
{
gtk_print_settings_set_printer
(
settings
,
m_default_printer
);
gtk_print_operation_set_print_settings
(
print
,
settings
);
}
if
(
m_printdialog_disable
)
action
=
GTK_PRINT_OPERATION_ACTION_PRINT
;
g_signal_connect
(
print
,
"begin_print"
,
G_CALLBACK
(
begin_print
),
print_data
);
g_signal_connect
(
print
,
"draw_page"
,
G_CALLBACK
(
draw_page
),
print_data
);
g_signal_connect
(
print
,
"request_page_setup"
,
G_CALLBACK
(
request_page_setup
),
print_data
);
g_signal_connect
(
print
,
"end_print"
,
G_CALLBACK
(
end_print
),
print_data
);
gtk_print_operation_set_allow_async
(
print
,
TRUE
);
result
=
gtk_print_operation_run
(
print
,
action
,
GTK_WINDOW
(
parent_widget
),
0
);
if
(
result
==
GTK_PRINT_OPERATION_RESULT_APPLY
)
{
if
(
settings
)
g_object_unref
(
settings
);
settings
=
(
GtkPrintSettings
*
)
g_object_ref
(
gtk_print_operation_get_print_settings
(
print
));
}
g_object_unref
(
print
);
*
sts
=
WOW__SUCCESS
;
}
...
...
xtt/lib/cow/gtk/cow_wow_gtk.h
View file @
b7a95862
...
...
@@ -148,6 +148,11 @@ class CoWowGtk : public CoWow {
void
DisplayLicense
();
pwr_tStatus
CreateMenuItem
(
const
char
*
name
,
void
*
menu
,
int
pixmap
,
int
append
,
void
*
w
);
pwr_tStatus
DeleteMenuItem
(
const
char
*
name
,
void
*
menu
);
void
CreateBrowPrintDialog
(
const
char
*
title
,
void
*
brow_ctx
,
int
orientation
,
void
*
parent_widget
,
pwr_tStatus
*
sts
)
{
CreateBrowPrintDialogGtk
(
title
,
brow_ctx
,
orientation
,
parent_widget
,
sts
);}
static
void
CreateBrowPrintDialogGtk
(
const
char
*
title
,
void
*
brow_ctx
,
int
orientation
,
void
*
parent_widget
,
pwr_tStatus
*
sts
);
CoWowTimer
*
timer_new
();
void
SetParent
(
GtkWidget
*
parent
)
{
m_parent
=
parent
;}
void
Wait
(
float
time
);
...
...
xtt/lib/cow/src/cow_wow.cpp
View file @
b7a95862
...
...
@@ -45,6 +45,8 @@
#include "co_dcli.h"
bool
CoWow
::
m_autoremove
=
false
;
bool
CoWow
::
m_printdialog_disable
=
false
;
char
CoWow
::
m_default_printer
[
80
]
=
""
;
CoWow
::~
CoWow
()
{}
...
...
xtt/lib/cow/src/cow_wow.h
View file @
b7a95862
...
...
@@ -40,6 +40,7 @@
/* cow_wow -- useful windows */
#include <string.h>
#include "co_wow_msg.h"
typedef
enum
{
wow_eFileSelType_
,
...
...
@@ -102,6 +103,8 @@ class CoWowRecall {
class
CoWow
{
protected:
static
bool
m_autoremove
;
static
bool
m_printdialog_disable
;
static
char
m_default_printer
[
80
];
public:
CoWow
()
{}
...
...
@@ -150,6 +153,11 @@ class CoWow {
virtual
CoWowTimer
*
timer_new
()
{
return
0
;}
virtual
pwr_tStatus
CreateMenuItem
(
const
char
*
name
,
void
*
menu
,
int
pixmap
,
int
append
,
void
*
w
)
{
return
0
;}
virtual
pwr_tStatus
DeleteMenuItem
(
const
char
*
name
,
void
*
menu
)
{
return
0
;}
virtual
void
CreateBrowPrintDialog
(
const
char
*
title
,
void
*
brow_ctx
,
int
orientation
,
void
*
parent_widget
,
pwr_tStatus
*
sts
)
{
*
sts
=
WOW__NYI
;}
static
void
SetDefaultPrinter
(
const
char
*
printer
)
{
strncpy
(
m_default_printer
,
printer
,
sizeof
(
m_default_printer
));}
static
void
DisablePrintDialog
()
{
m_printdialog_disable
=
true
;}
static
bool
PrintDialogIsDisabled
()
{
return
m_printdialog_disable
;}
static
void
SetAutoRemove
(
bool
on
)
{
m_autoremove
=
on
;}
};
...
...
xtt/lib/flow/gtk/flow_draw_gtk.cpp
View file @
b7a95862
...
...
@@ -46,6 +46,7 @@
#include "flow_draw_gtk.h"
#include "flow_msg.h"
#include "flow_widget_gtk.h"
#include "flow_printdraw_gtk.h"
#include "pwr.h"
#include "co_dcli.h"
#include "flow_browwidget_gtk.h"
...
...
@@ -2026,3 +2027,11 @@ int FlowDrawGtk::image_load( const char *imagefile, float scale, float nav_scale
*
im
=
(
flow_tImImage
*
)
gdk_pixbuf_scale_simple
(
(
GdkPixbuf
*
)
*
orig_im
,
width
,
height
,
GDK_INTERP_NEAREST
);
return
1
;
}
FlowPrintDraw
*
FlowDrawGtk
::
print_draw_new
(
void
*
context
,
const
char
*
title
,
int
page
,
void
*
flow_ctx
,
int
page_border
,
int
*
sts
)
{
FlowPrintDrawGtk
*
pd
=
new
FlowPrintDrawGtk
(
context
,
title
,
page
,
flow_ctx
,
page_border
,
sts
);
return
(
FlowPrintDraw
*
)
pd
;
}
xtt/lib/flow/gtk/flow_draw_gtk.h
View file @
b7a95862
...
...
@@ -206,6 +206,8 @@ class FlowDrawGtk : public FlowDraw {
int
get_text_extent_pango
(
FlowCtx
*
ctx
,
const
char
*
text
,
int
len
,
flow_eDrawType
gc_type
,
int
idx
,
double
size
,
int
*
width
,
int
*
height
);
FlowPrintDraw
*
print_draw_new
(
void
*
context
,
const
char
*
title
,
int
page
,
void
*
flow_ctx
,
int
page_border
,
int
*
sts
);
};
#endif
xtt/lib/flow/gtk/flow_printdraw_gtk.cpp
0 → 100644
View file @
b7a95862
/*
* Proview Open Source Process Control.
* Copyright (C) 2005-2012 SSAB EMEA AB.
*
* This file is part of Proview.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Proview. If not, see <http://www.gnu.org/licenses/>
*
* Linking Proview statically or dynamically with other modules is
* making a combined work based on Proview. Thus, the terms and
* conditions of the GNU General Public License cover the whole
* combination.
*
* In addition, as a special exception, the copyright holders of
* Proview give you permission to, from the build function in the
* Proview Configurator, combine Proview with modules generated by the
* Proview PLC Editor to a PLC program, regardless of the license
* terms of these modules. You may copy and distribute the resulting
* combined work under the terms of your choice, provided that every
* copy of the combined work is accompanied by a complete copy of
* the source code of Proview (the version used to produce the
* combined work), being distributed under the terms of the GNU
* General Public License plus this exception.
**/
#include "flow_std.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <float.h>
#include <gtk/gtk.h>
#include "flow_ctx.h"
#include "flow_printdraw_gtk.h"
FlowPrintDrawGtk
::
FlowPrintDrawGtk
(
void
*
context
,
const
char
*
t
,
int
p
,
void
*
flow_ctx
,
int
page_border
,
int
*
sts
)
:
print_ctx
((
GtkPrintContext
*
)
context
),
border
(
page_border
),
ctx
((
FlowCtx
*
)
flow_ctx
),
show_red
(
1
),
page
(
p
)
{
strncpy
(
title
,
t
,
sizeof
(
title
));
*
sts
=
1
;
}
FlowPrintDrawGtk
::~
FlowPrintDrawGtk
()
{
}
int
FlowPrintDrawGtk
::
print_page
(
double
ll_x
,
double
ll_y
,
double
ur_x
,
double
ur_y
)
{
PangoLayout
*
layout
;
gdouble
width
,
text_height
;
gint
layout_height
,
layout_width
;
PangoFontDescription
*
desc
;
char
page_str
[
40
];
if
(
ur_x
-
ll_x
>
ur_y
-
ll_y
)
ctx
->
print_zoom_factor
=
730
/
(
ur_x
-
ll_x
);
else
ctx
->
print_zoom_factor
=
730
/
(
ur_y
-
ll_y
);
ctx
->
print_zoom
();
page_x
=
ll_x
*
ctx
->
print_zoom_factor
;
page_y
=
ll_y
*
ctx
->
print_zoom_factor
;
cairo
=
gtk_print_context_get_cairo_context
(
print_ctx
);
width
=
gtk_print_context_get_width
(
print_ctx
);
cairo_move_to
(
cairo
,
0
,
0
);
cairo_line_to
(
cairo
,
width
,
0
);
cairo_set_source_rgb
(
cairo
,
0
,
0
,
0
);
cairo_set_line_width
(
cairo
,
0.5
);
cairo_stroke
(
cairo
);
layout
=
gtk_print_context_create_pango_layout
(
print_ctx
);
desc
=
pango_font_description_from_string
(
"Lucida Sans 9"
);
pango_layout_set_font_description
(
layout
,
desc
);
pango_font_description_free
(
desc
);
sprintf
(
page_str
,
"Page %d"
,
page
+
1
);
pango_layout_set_width
(
layout
,
-
1
);
pango_layout_set_text
(
layout
,
page_str
,
-
1
);
pango_layout_set_alignment
(
layout
,
PANGO_ALIGN_LEFT
);
pango_layout_get_size
(
layout
,
NULL
,
&
layout_height
);
text_height
=
(
gdouble
)
layout_height
/
PANGO_SCALE
;
cairo_move_to
(
cairo
,
width
-
50
,
-
text_height
);
cairo_set_source_rgb
(
cairo
,
0
,
0
,
0
);
pango_cairo_show_layout
(
cairo
,
layout
);
g_object_unref
(
layout
);
layout
=
gtk_print_context_create_pango_layout
(
print_ctx
);
desc
=
pango_font_description_from_string
(
"Lucida Sans 9"
);
pango_layout_set_font_description
(
layout
,
desc
);
pango_font_description_free
(
desc
);
pango_layout_set_width
(
layout
,
-
1
);
pango_layout_set_alignment
(
layout
,
PANGO_ALIGN_CENTER
);
pango_layout_set_text
(
layout
,
title
,
-
1
);
pango_layout_get_size
(
layout
,
&
layout_width
,
&
layout_height
);
text_height
=
(
gdouble
)
layout_height
/
PANGO_SCALE
;
cairo_move_to
(
cairo
,
width
/
2
-
(
gdouble
)
layout_width
/
PANGO_SCALE
/
2
,
-
text_height
);
cairo_set_source_rgb
(
cairo
,
0
,
0
,
0
);
pango_cairo_show_layout
(
cairo
,
layout
);
g_object_unref
(
layout
);
cairo_rectangle
(
cairo
,
0
,
0
,
(
ur_x
-
ll_x
)
*
ctx
->
print_zoom_factor
,
(
ur_y
-
ll_y
)
*
ctx
->
print_zoom_factor
);
cairo_clip
(
cairo
);
((
FlowCtx
*
)
ctx
)
->
current_print
=
this
;
((
FlowCtx
*
)
ctx
)
->
print
(
ll_x
,
ll_y
,
ur_x
,
ur_y
);
cairo_reset_clip
(
cairo
);
return
1
;
}
int
FlowPrintDrawGtk
::
rect
(
double
x
,
double
y
,
double
width
,
double
height
,
flow_eDrawType
type
,
double
idx
,
int
highlight
)
{
switch
(
type
)
{
case
flow_eDrawType_LineRed
:
cairo_set_source_rgb
(
cairo
,
1
,
0
,
0
);
break
;
default:
cairo_set_source_rgb
(
cairo
,
0
,
0
,
0
);
}
cairo_set_line_width
(
cairo
,
0.5
*
idx
);
cairo_rectangle
(
cairo
,
x
-
page_x
,
y
-
page_y
,
width
,
height
);
cairo_stroke
(
cairo
);
return
1
;
}
int
FlowPrintDrawGtk
::
filled_rect
(
double
x
,
double
y
,
double
width
,
double
height
,
flow_eDrawType
type
,
double
idx
)
{
switch
(
type
)
{
case
flow_eDrawType_LineRed
:
cairo_set_source_rgb
(
cairo
,
1
,
0
,
0
);
break
;
case
flow_eDrawType_Green
:
cairo_set_source_rgb
(
cairo
,
0
,
1
,
0
);
break
;
case
flow_eDrawType_Yellow
:
cairo_set_source_rgb
(
cairo
,
1
,
1
,
0
);
break
;
case
flow_eDrawType_DarkGray
:
cairo_set_source_rgb
(
cairo
,
0.3
,
0.3
,
0.3
);
break
;
default:
cairo_set_source_rgb
(
cairo
,
0
,
0
,
0
);
}
cairo_rectangle
(
cairo
,
x
-
page_x
,
y
-
page_y
,
width
,
height
);
cairo_fill
(
cairo
);
cairo_set_source_rgb
(
cairo
,
0
,
0
,
0
);
cairo_set_line_width
(
cairo
,
0.5
*
idx
);
cairo_rectangle
(
cairo
,
x
-
page_x
,
y
-
page_y
,
width
,
height
);
cairo_stroke
(
cairo
);
return
1
;
}
int
FlowPrintDrawGtk
::
arc
(
double
x
,
double
y
,
double
width
,
double
height
,
int
angle1
,
int
angle2
,
flow_eDrawType
type
,
double
idx
,
int
highlight
)
{
return
1
;
}
int
FlowPrintDrawGtk
::
line
(
double
x1
,
double
y1
,
double
x2
,
double
y2
,
flow_eDrawType
type
,
double
idx
,
int
highlight
)
{
return
1
;
}
int
FlowPrintDrawGtk
::
text
(
double
x
,
double
y
,
char
*
text
,
int
len
,
flow_eDrawType
type
,
double
size
)
{
char
font
[
40
];
PangoLayout
*
layout
;
PangoFontDescription
*
desc
;
int
w
,
h
;
switch
(
type
)
{
case
flow_eDrawType_TextHelvetica
:
sprintf
(
font
,
"Lucida Sans %3.1f"
,
1.0
*
size
);
break
;
case
flow_eDrawType_TextHelveticaBold
:
sprintf
(
font
,
"Lucida Sans Bold %3.1f"
,
1.0
*
size
);
break
;
default:
;
}
layout
=
gtk_print_context_create_pango_layout
(
print_ctx
);
desc
=
pango_font_description_from_string
(
font
);
pango_layout_set_font_description
(
layout
,
desc
);
pango_font_description_free
(
desc
);
char
*
textutf8
=
g_convert
(
text
,
-
1
,
"UTF-8"
,
"ISO8859-1"
,
NULL
,
NULL
,
NULL
);
pango_layout_set_text
(
layout
,
textutf8
,
-
1
);
pango_layout_set_alignment
(
layout
,
PANGO_ALIGN_LEFT
);
pango_layout_get_size
(
layout
,
&
w
,
&
h
);
cairo_move_to
(
cairo
,
x
-
page_x
,
y
-
page_y
-
0.8
/
PANGO_SCALE
*
h
);
cairo_set_source_rgb
(
cairo
,
0
,
0
,
0
);
pango_cairo_show_layout
(
cairo
,
layout
);
g_free
(
textutf8
);
return
1
;
}
int
FlowPrintDrawGtk
::
pixmap
(
double
x
,
double
y
,
flow_sPixmapDataElem
*
data
,
flow_eDrawType
type
)
{
int
stride
;
cairo_surface_t
*
surface
;
unsigned
char
*
sdata
;
unsigned
char
*
data_p
,
*
sdata_p
;
int
bit_cnt
;
int
i
,
j
;
float
scale
=
0.7
;
// Do do, set color
switch
(
type
)
{
case
flow_eDrawType_LineRed
:
break
;
default:
;
}
stride
=
cairo_format_stride_for_width
(
CAIRO_FORMAT_A1
,
data
->
width
);
sdata
=
(
unsigned
char
*
)
calloc
(
1
,
stride
*
data
->
height
);
data_p
=
(
unsigned
char
*
)
data
->
bits
;
for
(
i
=
0
;
i
<
data
->
height
;
i
++
)
{
bit_cnt
=
0
;
sdata_p
=
sdata
+
i
*
stride
;
for
(
j
=
0
;
j
<
data
->
width
;
j
++
)
{
if
(
bit_cnt
==
8
)
{
bit_cnt
=
0
;
data_p
++
;
sdata_p
++
;
}
if
(
*
data_p
&
(
1
<<
bit_cnt
))
*
sdata_p
|=
1
<<
bit_cnt
;
bit_cnt
++
;
}
data_p
++
;
}
surface
=
cairo_image_surface_create_for_data
(
sdata
,
CAIRO_FORMAT_A1
,
data
->
width
,
data
->
height
,
stride
);
cairo_scale
(
cairo
,
scale
,
scale
);
//cairo_mask_surface( cairo, surface, (x - page_x)/scale, (y - page_y)/scale);
cairo_set_source_surface
(
cairo
,
surface
,
(
x
-
page_x
)
/
scale
,
(
y
-
page_y
)
/
scale
);
cairo_paint
(
cairo
);
cairo_scale
(
cairo
,
1.0
/
scale
,
1.0
/
scale
);
cairo_surface_destroy
(
surface
);
// free( sdata);
return
1
;
}
int
FlowPrintDrawGtk
::
arrow
(
double
x1
,
double
y1
,
double
x2
,
double
y2
,
double
x3
,
double
y3
,
flow_eDrawType
type
,
double
idx
)
{
return
1
;
}
xtt/lib/flow/gtk/flow_printdraw_gtk.h
0 → 100644
View file @
b7a95862
/*
* Proview Open Source Process Control.
* Copyright (C) 2005-2012 SSAB EMEA AB.
*
* This file is part of Proview.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Proview. If not, see <http://www.gnu.org/licenses/>
*
* Linking Proview statically or dynamically with other modules is
* making a combined work based on Proview. Thus, the terms and
* conditions of the GNU General Public License cover the whole
* combination.
*
* In addition, as a special exception, the copyright holders of
* Proview give you permission to, from the build function in the
* Proview Configurator, combine Proview with modules generated by the
* Proview PLC Editor to a PLC program, regardless of the license
* terms of these modules. You may copy and distribute the resulting
* combined work under the terms of your choice, provided that every
* copy of the combined work is accompanied by a complete copy of
* the source code of Proview (the version used to produce the
* combined work), being distributed under the terms of the GNU
* General Public License plus this exception.
**/
#ifndef flow_printdraw_gtk_h
#define flow_printdraw_gtk_h
#include <stdio.h>
#include <gtk/gtk.h>
#include "flow.h"
#include "flow_printdraw.h"
class
FlowPrintDrawGtk
:
public
FlowPrintDraw
{
public:
FlowPrintDrawGtk
(
void
*
context
,
const
char
*
title
,
int
page
,
void
*
flow_ctx
,
int
page_border
,
int
*
sts
);
~
FlowPrintDrawGtk
();
int
print_page
(
double
ll_x
,
double
ll_y
,
double
ur_x
,
double
ur_y
);
int
rect
(
double
x
,
double
y
,
double
width
,
double
height
,
flow_eDrawType
type
,
double
idx
,
int
highlight
);
int
filled_rect
(
double
x
,
double
y
,
double
width
,
double
height
,
flow_eDrawType
type
,
double
idx
);
int
arc
(
double
x
,
double
y
,
double
width
,
double
height
,
int
angle1
,
int
angle2
,
flow_eDrawType
type
,
double
idx
,
int
highlight
);
int
line
(
double
x1
,
double
y1
,
double
x2
,
double
y2
,
flow_eDrawType
type
,
double
idx
,
int
highlight
);
int
text
(
double
x
,
double
y
,
char
*
text
,
int
len
,
flow_eDrawType
type
,
double
size
);
int
pixmap
(
double
x
,
double
y
,
flow_sPixmapDataElem
*
data
,
flow_eDrawType
type
);
int
arrow
(
double
x1
,
double
y1
,
double
x2
,
double
y2
,
double
x3
,
double
y3
,
flow_eDrawType
type
,
double
idx
);
void
set_showred
(
int
show
)
{
show_red
=
show
;}
GtkPrintContext
*
print_ctx
;
int
border
;
FlowCtx
*
ctx
;
int
show_red
;
cairo_t
*
cairo
;
double
page_x
;
double
page_y
;
char
title
[
80
];
int
page
;
};
#endif
xtt/lib/flow/src/flow.h
View file @
b7a95862
...
...
@@ -123,6 +123,11 @@ typedef enum {
flow_eDirection_Down
}
flow_eDirection
;
typedef
enum
{
flow_eOrientation_Portrait
,
flow_eOrientation_Landscape
}
flow_eOrientation
;
typedef
enum
{
flow_eNodeGroup_Common
,
flow_eNodeGroup_Document
,
...
...
xtt/lib/flow/src/flow_browapi.cpp
View file @
b7a95862
...
...
@@ -460,6 +460,17 @@ int brow_Print( brow_tCtx ctx, char *filename)
return
ctx
->
print
(
filename
);
}
void
brow_PrintDrawPage
(
brow_tCtx
ctx
,
void
*
context
,
const
char
*
title
,
int
page
,
flow_eOrientation
orientation
)
{
ctx
->
print_draw_page
(
context
,
title
,
page
,
orientation
);
}
void
brow_PrintGetPages
(
brow_tCtx
ctx
,
flow_eOrientation
orientation
,
int
*
pages
)
{
ctx
->
print_get_pages
(
orientation
,
pages
);
}
void
brow_GetUserData
(
brow_tObject
object
,
void
**
user_data
)
{
((
FlowArrayElem
*
)
object
)
->
get_user_data
(
user_data
);
...
...
xtt/lib/flow/src/flow_browapi.h
View file @
b7a95862
...
...
@@ -180,6 +180,9 @@ flow_eObjectType brow_GetObjectType( brow_tObject object);
void
brow_MeasureNode
(
brow_tNode
node
,
double
*
ll_x
,
double
*
ll_y
,
double
*
ur_x
,
double
*
ur_y
);
int
brow_Print
(
brow_tCtx
ctx
,
char
*
filename
);
void
brow_PrintDrawPage
(
brow_tCtx
ctx
,
void
*
context
,
const
char
*
title
,
int
page
,
flow_eOrientation
orientation
);
void
brow_PrintGetPages
(
brow_tCtx
ctx
,
flow_eOrientation
orientation
,
int
*
pages
);
void
brow_GetUserData
(
brow_tObject
object
,
void
**
user_data
);
void
brow_SetUserData
(
brow_tObject
object
,
void
*
user_data
);
void
brow_GetCtxUserData
(
brow_tCtx
ctx
,
void
**
user_data
);
...
...
xtt/lib/flow/src/flow_browctx.cpp
View file @
b7a95862
...
...
@@ -218,6 +218,60 @@ int BrowCtx::print( char *filename)
return
1
;
}
void
BrowCtx
::
print_draw_page
(
void
*
context
,
const
char
*
title
,
int
page
,
flow_eOrientation
orientation
)
{
double
ll_x
,
ll_y
,
ur_x
,
ur_y
;
double
width
,
height
;
int
sts
;
if
(
a
.
size
()
==
0
)
return
;
((
FlowNode
*
)
a
[
0
])
->
measure
(
&
ll_x
,
&
ll_y
,
&
ur_x
,
&
ur_y
);
height
=
60
*
(
ur_y
-
ll_y
);
width
=
0.70
*
height
;
if
(
orientation
==
flow_eOrientation_Landscape
)
{
height
=
40
*
(
ur_y
-
ll_y
);
width
=
height
/
0.70
;
}
current_print
=
(
FlowPrint
*
)
fdraw
->
print_draw_new
(
context
,
title
,
page
,
this
,
1
,
&
sts
);
if
(
EVEN
(
sts
))
return
;
ll_y
=
page
*
height
;
ur_y
=
ll_y
+
height
;
ll_x
=
0
;
ur_x
=
width
;
if
(
ll_y
>
y_high
)
return
;
current_print
->
print_page
(
ll_x
,
ll_y
,
ur_x
,
ur_y
);
delete
current_print
;
}
void
BrowCtx
::
print_get_pages
(
flow_eOrientation
orientation
,
int
*
pages
)
{
double
ll_x
,
ll_y
,
ur_x
,
ur_y
;
double
width
,
height
;
if
(
a
.
size
()
==
0
)
{
*
pages
=
0
;
return
;
}
((
FlowNode
*
)
a
[
0
])
->
measure
(
&
ll_x
,
&
ll_y
,
&
ur_x
,
&
ur_y
);
height
=
60
*
(
ur_y
-
ll_y
);
width
=
0.70
*
height
;
if
(
orientation
==
flow_eOrientation_Landscape
)
{
// Portrait
height
=
40
*
(
ur_y
-
ll_y
);
width
=
height
/
0.70
;
}
*
pages
=
int
(
y_high
/
height
+
1
);
}
int
BrowCtx
::
is_visible
(
FlowArrayElem
*
element
,
flow_eVisible
type
)
{
...
...
xtt/lib/flow/src/flow_browctx.h
View file @
b7a95862
...
...
@@ -64,6 +64,9 @@ class BrowCtx : public FlowCtx {
void
zoom
(
double
factor
);
void
unzoom
()
{
zoom
(
base_zoom_factor
/
zoom_factor
);};
int
print
(
char
*
filename
);
void
print_draw_page
(
void
*
context
,
const
char
*
title
,
int
page
,
flow_eOrientation
orientation
);
void
print_get_pages
(
flow_eOrientation
orientation
,
int
*
pages
);
int
get_first
(
FlowArrayElem
**
first
)
{
return
a
.
get_first
(
first
);};
int
get_last
(
FlowArrayElem
**
last
)
{
return
a
.
get_last
(
last
);};
int
get_previous
(
FlowArrayElem
*
element
,
FlowArrayElem
**
prev
)
...
...
xtt/lib/flow/src/flow_draw.h
View file @
b7a95862
...
...
@@ -40,6 +40,7 @@
#include <stdlib.h>
class
FlowCtx
;
class
FlowPrintDraw
;
class
FlowDraw
{
public:
...
...
@@ -169,6 +170,8 @@ class FlowDraw {
flow_tImImage
*
orig_im
,
flow_tImImage
*
im
,
flow_tPixmap
*
im_pixmap
,
flow_tPixmap
*
im_mask
,
flow_tPixmap
*
im_nav_pixmap
,
flow_tPixmap
*
im_nav_mask
)
{
return
0
;}
virtual
FlowPrintDraw
*
print_draw_new
(
void
*
context
,
const
char
*
title
,
int
page
,
void
*
flow_ctx
,
int
page_border
,
int
*
sts
)
{
*
sts
=
0
;
return
0
;}
};
...
...
xtt/lib/flow/src/flow_printdraw.h
0 → 100644
View file @
b7a95862
/*
* Proview Open Source Process Control.
* Copyright (C) 2005-2012 SSAB EMEA AB.
*
* This file is part of Proview.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Proview. If not, see <http://www.gnu.org/licenses/>
*
* Linking Proview statically or dynamically with other modules is
* making a combined work based on Proview. Thus, the terms and
* conditions of the GNU General Public License cover the whole
* combination.
*
* In addition, as a special exception, the copyright holders of
* Proview give you permission to, from the build function in the
* Proview Configurator, combine Proview with modules generated by the
* Proview PLC Editor to a PLC program, regardless of the license
* terms of these modules. You may copy and distribute the resulting
* combined work under the terms of your choice, provided that every
* copy of the combined work is accompanied by a complete copy of
* the source code of Proview (the version used to produce the
* combined work), being distributed under the terms of the GNU
* General Public License plus this exception.
**/
#ifndef flow_printdraw_h
#define flow_printdraw_h
#include <stdio.h>
#include "flow.h"
#include "flow_print.h"
class
FlowPrintDraw
:
public
FlowPrint
{
public:
FlowPrintDraw
()
{}
virtual
~
FlowPrintDraw
()
{}
virtual
int
print_page
(
double
ll_x
,
double
ll_y
,
double
ur_x
,
double
ur_y
)
{
return
1
;}
virtual
int
rect
(
double
x
,
double
y
,
double
width
,
double
height
,
flow_eDrawType
type
,
double
idx
,
int
highlight
)
{
return
1
;}
virtual
int
filled_rect
(
double
x
,
double
y
,
double
width
,
double
height
,
flow_eDrawType
type
,
double
idx
)
{
return
1
;}
virtual
int
arc
(
double
x
,
double
y
,
double
width
,
double
height
,
int
angle1
,
int
angle2
,
flow_eDrawType
type
,
double
idx
,
int
highlight
)
{
return
1
;}
virtual
int
line
(
double
x1
,
double
y1
,
double
x2
,
double
y2
,
flow_eDrawType
type
,
double
idx
,
int
highlight
)
{
return
1
;}
virtual
int
text
(
double
x
,
double
y
,
char
*
text
,
int
len
,
flow_eDrawType
type
,
double
size
)
{
return
1
;}
virtual
int
pixmap
(
double
x
,
double
y
,
flow_sPixmapDataElem
*
data
,
flow_eDrawType
type
)
{
return
1
;}
virtual
int
arrow
(
double
x1
,
double
y1
,
double
x2
,
double
y2
,
double
x3
,
double
y3
,
flow_eDrawType
type
,
double
idx
)
{
return
1
;}
virtual
void
set_showred
(
int
show
)
{}
};
#endif
xtt/lib/xtt/gtk/xtt_clog_gtk.cpp
View file @
b7a95862
...
...
@@ -44,6 +44,7 @@
#include "co_cdh.h"
#include "co_time.h"
#include "co_syi.h"
#include "pwr_baseclasses.h"
#include "rt_gdh.h"
...
...
@@ -123,6 +124,10 @@ CLogGtk::CLogGtk( void *clog_parent_ctx,
'u'
,
GdkModifierType
(
GDK_CONTROL_MASK
),
GTK_ACCEL_VISIBLE
);
GtkWidget
*
file_print
=
gtk_menu_item_new_with_mnemonic
(
CoWowGtk
::
translate_utf8
(
"_Print"
));
g_signal_connect
(
file_print
,
"activate"
,
G_CALLBACK
(
activate_print
),
this
);
GtkWidget
*
file_close
=
gtk_image_menu_item_new_with_mnemonic
(
CoWowGtk
::
translate_utf8
(
"_Close"
));
gtk_image_menu_item_set_image
(
GTK_IMAGE_MENU_ITEM
(
file_close
),
gtk_image_new_from_stock
(
"gtk-close"
,
GTK_ICON_SIZE_MENU
));
...
...
@@ -136,6 +141,7 @@ CLogGtk::CLogGtk( void *clog_parent_ctx,
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_next_file
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_prev_file
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_update
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_print
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_close
);
GtkWidget
*
file
=
gtk_menu_item_new_with_mnemonic
(
CoWowGtk
::
translate_utf8
(
"_File"
));
...
...
@@ -381,6 +387,13 @@ void CLogGtk::activate_update( GtkWidget *w, gpointer data)
clog
->
reset_cursor
();
}
void
CLogGtk
::
activate_print
(
GtkWidget
*
w
,
gpointer
data
)
{
CLog
*
clog
=
(
CLog
*
)
data
;
clog
->
activate_print
();
}
void
CLogGtk
::
activate_help
(
GtkWidget
*
w
,
gpointer
data
)
{
CLog
*
clog
=
(
CLog
*
)
data
;
...
...
@@ -508,4 +521,21 @@ void CLogGtk::create_filter_dialog()
}
void
CLogGtk
::
print
()
{
char
nodename
[
80
];
pwr_tStatus
sts
;
char
title
[
80
];
strcpy
(
title
,
"System Messages "
);
syi_NodeName
(
&
sts
,
nodename
,
sizeof
(
nodename
));
if
(
ODD
(
sts
))
{
strcat
(
title
,
" "
);
strcat
(
title
,
nodename
);
}
wow
->
CreateBrowPrintDialog
(
title
,
clognav
->
brow
->
ctx
,
flow_eOrientation_Landscape
,
parent_wid
,
&
sts
);
}
xtt/lib/xtt/gtk/xtt_clog_gtk.h
View file @
b7a95862
...
...
@@ -73,6 +73,7 @@ class CLogGtk : public CLog {
void
reset_cursor
();
void
free_cursor
();
void
create_filter_dialog
();
void
print
();
static
gboolean
action_inputfocus
(
GtkWidget
*
w
,
GdkEvent
*
event
,
gpointer
data
);
static
void
activate_exit
(
GtkWidget
*
w
,
gpointer
data
);
...
...
@@ -80,6 +81,7 @@ class CLogGtk : public CLog {
static
void
activate_next_file
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_prev_file
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_update
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_print
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_zoom_in
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_zoom_out
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_zoom_reset
(
GtkWidget
*
w
,
gpointer
data
);
...
...
xtt/lib/xtt/gtk/xtt_evlist_gtk.cpp
View file @
b7a95862
...
...
@@ -44,6 +44,7 @@
#include "co_cdh.h"
#include "co_time.h"
#include "co_syi.h"
#include "pwr_baseclasses.h"
#include "rt_gdh.h"
#include "rt_mh.h"
...
...
@@ -95,3 +96,21 @@ void EvListGtk::popup_position( int x_event, int y_event, int *x, int *y)
{
CoWowGtk
::
PopupPosition
(
brow_widget
,
x_event
,
y_event
,
x
,
y
);
}
void
EvListGtk
::
print
(
const
char
*
title
)
{
char
nodename
[
80
];
pwr_tStatus
sts
;
char
print_title
[
120
];
strcpy
(
print_title
,
title
);
syi_NodeName
(
&
sts
,
nodename
,
sizeof
(
nodename
));
if
(
ODD
(
sts
))
{
strcat
(
print_title
,
" "
);
strcat
(
print_title
,
nodename
);
}
CoWowGtk
::
CreateBrowPrintDialogGtk
(
print_title
,
brow
->
ctx
,
flow_eOrientation_Landscape
,
GTK_WINDOW
(
parent_wid
),
&
sts
);
}
xtt/lib/xtt/gtk/xtt_evlist_gtk.h
View file @
b7a95862
...
...
@@ -58,9 +58,11 @@ class EvListGtk : public EvList {
GtkWidget
*
brow_widget
;
GtkWidget
*
form_widget
;
GtkWidget
*
toplevel
;
char
print_title
[
120
];
void
set_input_focus
();
void
bell
();
void
print
(
const
char
*
title
);
void
popup_position
(
int
x_event
,
int
y_event
,
int
*
x
,
int
*
y
);
};
...
...
xtt/lib/xtt/gtk/xtt_xcolwind_gtk.cpp
View file @
b7a95862
...
...
@@ -210,6 +210,13 @@ void XColWindGtk::activate_saveas( GtkWidget *w, gpointer data)
xcolwind
->
activate_saveas
();
}
void
XColWindGtk
::
activate_print
(
GtkWidget
*
w
,
gpointer
data
)
{
XColWind
*
xcolwind
=
(
XColWind
*
)
data
;
xcolwind
->
activate_print
();
}
void
XColWindGtk
::
activate_close_changeval
(
GtkWidget
*
w
,
gpointer
data
)
{
XColWind
*
xcolwind
=
(
XColWind
*
)
data
;
...
...
@@ -550,6 +557,14 @@ void XColWindGtk::get_window_size( int *w, int *h)
gtk_window_get_size
(
GTK_WINDOW
(
toplevel
),
w
,
h
);
}
void
XColWindGtk
::
print
()
{
pwr_tStatus
sts
;
wow
->
CreateBrowPrintDialog
(
title
,
xattnav
->
brow
->
ctx
,
flow_eOrientation_Portrait
,
(
void
*
)
toplevel
,
&
sts
);
}
XColWindGtk
::~
XColWindGtk
()
{
delete
(
XAttNav
*
)
xattnav
;
...
...
@@ -631,11 +646,16 @@ XColWindGtk::XColWindGtk( GtkWidget *xa_parent_wid,
g_signal_connect
(
file_open
,
"activate"
,
G_CALLBACK
(
activate_open
),
this
);
GtkWidget
*
file_print
=
gtk_menu_item_new_with_mnemonic
(
CoWowGtk
::
translate_utf8
(
"_Print"
));
g_signal_connect
(
file_print
,
"activate"
,
G_CALLBACK
(
activate_print
),
this
);
GtkMenu
*
file_menu
=
(
GtkMenu
*
)
g_object_new
(
GTK_TYPE_MENU
,
NULL
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_open
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_save
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_saveas
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_print
);
gtk_menu_shell_append
(
GTK_MENU_SHELL
(
file_menu
),
file_close
);
GtkWidget
*
file
=
gtk_menu_item_new_with_mnemonic
(
CoWowGtk
::
translate_utf8
(
"_File"
));
...
...
xtt/lib/xtt/gtk/xtt_xcolwind_gtk.h
View file @
b7a95862
...
...
@@ -87,12 +87,14 @@ class XColWindGtk : public XColWind {
void
set_title
(
char
*
title
);
void
set_window_size
(
int
w
,
int
h
);
void
get_window_size
(
int
*
w
,
int
*
h
);
void
print
();
static
void
activate_open
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_save
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_saveas
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_insert
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_delete
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_print
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_moveup
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_movedown
(
GtkWidget
*
w
,
gpointer
data
);
static
void
activate_change_value
(
GtkWidget
*
w
,
gpointer
data
);
...
...
xtt/lib/xtt/src/xtt_clog.cpp
View file @
b7a95862
...
...
@@ -84,6 +84,14 @@ void CLog::activate_prev_file()
reset_cursor
();
}
void
CLog
::
activate_print
()
{
if
(
CoWow
::
PrintDialogIsDisabled
())
wow
->
DisplayError
(
"Disabled"
,
"Print Dialog is disabled"
);
else
print
();
}
void
CLog
::
activate_help
()
{
if
(
help_cb
)
...
...
xtt/lib/xtt/src/xtt_clog.h
View file @
b7a95862
...
...
@@ -69,9 +69,11 @@ class CLog {
virtual
void
set_clock_cursor
()
{}
virtual
void
reset_cursor
()
{}
virtual
void
free_cursor
()
{}
virtual
void
print
()
{}
void
activate_next_file
();
void
activate_prev_file
();
void
activate_print
();
void
activate_help
();
};
...
...
xtt/lib/xtt/src/xtt_ev.cpp
View file @
b7a95862
...
...
@@ -163,38 +163,50 @@ void Ev::blk_display_in_xnav_cb( void *ctx, pwr_tAttrRef *arp)
void
Ev
::
eve_activate_print
()
{
pwr_tFileName
filename
;
pwr_tCmd
cmd
;
if
(
CoWow
::
PrintDialogIsDisabled
())
{
pwr_tFileName
filename
;
pwr_tCmd
cmd
;
dcli_translate_filename
(
filename
,
"$pwrp_tmp/xnav.ps"
);
eve
->
print
(
filename
);
dcli_translate_filename
(
filename
,
"$pwrp_tmp/xnav.ps"
);
eve
->
print_nodia
(
filename
);
sprintf
(
cmd
,
"$pwr_exe/rt_print.sh %s"
,
filename
);
system
(
cmd
);
sprintf
(
cmd
,
"$pwr_exe/rt_print.sh %s"
,
filename
);
system
(
cmd
);
}
else
eve
->
print
(
"Event List"
);
}
void
Ev
::
ala_activate_print
()
{
pwr_tFileName
filename
;
pwr_tCmd
cmd
;
if
(
CoWow
::
PrintDialogIsDisabled
())
{
pwr_tFileName
filename
;
pwr_tCmd
cmd
;
dcli_translate_filename
(
filename
,
"$pwrp_tmp/xnav.ps"
);
ala
->
print
(
filename
);
dcli_translate_filename
(
filename
,
"$pwrp_tmp/xnav.ps"
);
ala
->
print_nodia
(
filename
);
sprintf
(
cmd
,
"$pwr_exe/rt_print.sh %s"
,
filename
);
system
(
cmd
);
sprintf
(
cmd
,
"$pwr_exe/rt_print.sh %s"
,
filename
);
system
(
cmd
);
}
else
ala
->
print
(
"Alarm List"
);
}
void
Ev
::
blk_activate_print
()
{
pwr_tFileName
filename
;
pwr_tCmd
cmd
;
if
(
CoWow
::
PrintDialogIsDisabled
())
{
pwr_tFileName
filename
;
pwr_tCmd
cmd
;
dcli_translate_filename
(
filename
,
"$pwrp_tmp/xnav.ps"
);
blk
->
print
(
filename
);
dcli_translate_filename
(
filename
,
"$pwrp_tmp/xnav.ps"
);
blk
->
print_nodia
(
filename
);
sprintf
(
cmd
,
"$pwr_exe/rt_print.sh %s"
,
filename
);
system
(
cmd
);
sprintf
(
cmd
,
"$pwr_exe/rt_print.sh %s"
,
filename
);
system
(
cmd
);
}
else
blk
->
print
(
"Block List"
);
}
void
Ev
::
eve_activate_ack_last
()
...
...
xtt/lib/xtt/src/xtt_evlist.cpp
View file @
b7a95862
...
...
@@ -934,7 +934,7 @@ void EvList::event_return( mh_sReturn *msg)
}
}
void
EvList
::
print
(
char
*
filename
)
void
EvList
::
print
_nodia
(
char
*
filename
)
{
brow_Print
(
brow
->
ctx
,
filename
);
}
...
...
xtt/lib/xtt/src/xtt_evlist.h
View file @
b7a95862
...
...
@@ -189,6 +189,7 @@ class EvList {
virtual
void
set_input_focus
()
{}
virtual
void
bell
()
{}
virtual
void
popup_position
(
int
x_event
,
int
y_event
,
int
*
x
,
int
*
y
)
{}
virtual
void
print
(
const
char
*
title
)
{}
void
event_info
(
mh_sMessage
*
msg
);
void
event_alarm
(
mh_sMessage
*
msg
);
...
...
@@ -218,7 +219,7 @@ class EvList {
int
get_selected_event
(
char
*
eventname
,
ItemAlarm
**
item
);
int
get_destination
(
pwr_tTime
time
,
void
**
dest
);
void
block_remove
();
void
print
(
char
*
filename
);
void
print
_nodia
(
char
*
filename
);
static
int
init_brow_cb
(
FlowCtx
*
fctx
,
void
*
client_data
);
static
int
brow_cb
(
FlowCtx
*
ctx
,
flow_tEvent
event
);
...
...
xtt/lib/xtt/src/xtt_hist.cpp
View file @
b7a95862
...
...
@@ -128,10 +128,14 @@ void Hist::hist_display_in_xnav_cb( void *ctx, pwr_sAttrRef *arp)
void
Hist
::
activate_print
()
{
char
filename
[
200
];
dcli_translate_filename
(
filename
,
"$pwrp_tmp/xnav.ps"
);
if
(
CoWow
::
PrintDialogIsDisabled
())
{
char
filename
[
200
];
dcli_translate_filename
(
filename
,
"$pwrp_tmp/xnav.ps"
);
hist
->
print
(
filename
);
hist
->
print_nodia
(
filename
);
}
else
hist
->
print
(
"Event Log"
);
}
void
Hist
::
activate_help
()
...
...
xtt/lib/xtt/src/xtt_xcolwind.cpp
View file @
b7a95862
...
...
@@ -311,6 +311,12 @@ void XColWind::activate_movedown()
}
}
void
XColWind
::
activate_print
()
{
if
(
!
CoWow
::
PrintDialogIsDisabled
())
print
();
}
void
XColWind
::
activate_help
()
{
// Not yet implemented
...
...
xtt/lib/xtt/src/xtt_xcolwind.h
View file @
b7a95862
...
...
@@ -100,6 +100,7 @@ class XColWind {
virtual
void
set_title
(
char
*
title
)
{}
virtual
void
set_window_size
(
int
w
,
int
h
)
{}
virtual
void
get_window_size
(
int
*
w
,
int
*
h
)
{}
virtual
void
print
()
{}
int
open_changevalue
(
char
*
name
);
void
swap
(
int
mode
);
...
...
@@ -123,6 +124,7 @@ class XColWind {
void
activate_zoomin
();
void
activate_zoomout
();
void
activate_help
();
void
activate_print
();
static
void
xcolwind_popup_menu_cb
(
void
*
ctx
,
pwr_sAttrRef
attrref
,
unsigned
long
item_type
,
unsigned
long
utility
,
...
...
xtt/lib/xtt/src/xtt_xnav.cpp
View file @
b7a95862
...
...
@@ -1330,6 +1330,17 @@ void XNav::print( char *filename)
brow_Print
(
brow
->
ctx
,
filename
);
}
void
XNav
::
print_draw_page
(
void
*
context
,
const
char
*
title
,
int
page
,
flow_eOrientation
orientation
)
{
brow_PrintDrawPage
(
brow
->
ctx
,
context
,
title
,
page
,
orientation
);
}
void
XNav
::
print_get_pages
(
flow_eOrientation
orientation
,
int
*
pages
)
{
brow_PrintGetPages
(
brow
->
ctx
,
orientation
,
pages
);
}
//
// Get zoom
//
...
...
xtt/lib/xtt/src/xtt_xnav.h
View file @
b7a95862
...
...
@@ -416,6 +416,9 @@ class XNav {
brow_tNode
dest
,
flow_eDest
dest_code
,
void
**
item
,
int
is_root
);
void
print
(
char
*
filename
);
void
print_draw_page
(
void
*
context
,
const
char
*
title
,
int
page
,
flow_eOrientation
orientation
);
void
print_get_pages
(
flow_eOrientation
orientation
,
int
*
pages
);
void
zoom
(
double
zoom_factor
);
void
get_zoom
(
double
*
zoom_factor
);
void
unzoom
();
...
...
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