Commit abb0be99 authored by Claes Sjofors's avatar Claes Sjofors

History methods for PlantHier, PlcPgm and XttGraph objects

parent 0aed03a8
...@@ -50,8 +50,9 @@ CoLogWGtk::CoLogWGtk ( ...@@ -50,8 +50,9 @@ CoLogWGtk::CoLogWGtk (
void *logw_parent_ctx, void *logw_parent_ctx,
GtkWidget *logw_parent_wid, GtkWidget *logw_parent_wid,
const char *logw_name, const char *logw_name,
int l_show_item,
pwr_tStatus *status) : pwr_tStatus *status) :
CoLogW( logw_parent_ctx, logw_name, status), parent_wid(logw_parent_wid) CoLogW( logw_parent_ctx, logw_name, l_show_item, status), parent_wid(logw_parent_wid)
{ {
const int window_width = 800; const int window_width = 800;
const int window_height = 600; const int window_height = 600;
...@@ -110,7 +111,7 @@ CoLogWGtk::CoLogWGtk ( ...@@ -110,7 +111,7 @@ CoLogWGtk::CoLogWGtk (
form = gtk_vbox_new( FALSE, 0); form = gtk_vbox_new( FALSE, 0);
// Create logwnav // Create logwnav
logwnav = new CoLogWNavGtk( this, form, &nav_widget); logwnav = new CoLogWNavGtk( this, form, l_show_item, &nav_widget);
gtk_box_pack_start( GTK_BOX(form), GTK_WIDGET(menu_bar), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(form), GTK_WIDGET(menu_bar), FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(form), GTK_WIDGET(nav_widget), TRUE, TRUE, 0); gtk_box_pack_start( GTK_BOX(form), GTK_WIDGET(nav_widget), TRUE, TRUE, 0);
...@@ -138,7 +139,7 @@ gboolean CoLogWGtk::action_inputfocus( GtkWidget *w, GdkEvent *event, gpointer d ...@@ -138,7 +139,7 @@ gboolean CoLogWGtk::action_inputfocus( GtkWidget *w, GdkEvent *event, gpointer d
{ {
CoLogWGtk *logw = (CoLogWGtk *)data; CoLogWGtk *logw = (CoLogWGtk *)data;
if ( logw && logw->displayed) { if ( logw) {
if ( logw->focustimer.disabled()) if ( logw->focustimer.disabled())
return FALSE; return FALSE;
......
...@@ -38,6 +38,7 @@ class CoLogWGtk : public CoLogW { ...@@ -38,6 +38,7 @@ class CoLogWGtk : public CoLogW {
void *msg_parent_ctx, void *msg_parent_ctx,
GtkWidget *msg_parent_wid, GtkWidget *msg_parent_wid,
const char *msg_name, const char *msg_name,
int l_show_item,
pwr_tStatus *status); pwr_tStatus *status);
~CoLogWGtk(); ~CoLogWGtk();
......
...@@ -38,10 +38,11 @@ extern "C" { ...@@ -38,10 +38,11 @@ extern "C" {
#include "co_logwnav_gtk.h" #include "co_logwnav_gtk.h"
CoLogWNavGtk::CoLogWNavGtk ( CoLogWNavGtk::CoLogWNavGtk (
void *ev_parent_ctx, void *l_parent_ctx,
GtkWidget *ev_parent_wid, GtkWidget *l_parent_wid,
int l_show_item,
GtkWidget **w) : GtkWidget **w) :
CoLogWNav( ev_parent_ctx), parent_wid(ev_parent_wid) CoLogWNav( l_parent_ctx, l_show_item), parent_wid(l_parent_wid)
{ {
form_widget = scrolledbrowwidgetgtk_new( form_widget = scrolledbrowwidgetgtk_new(
CoLogWNav::init_brow_cb, this, &brow_widget); CoLogWNav::init_brow_cb, this, &brow_widget);
......
...@@ -31,6 +31,7 @@ class CoLogWNavGtk : public CoLogWNav { ...@@ -31,6 +31,7 @@ class CoLogWNavGtk : public CoLogWNav {
CoLogWNavGtk( CoLogWNavGtk(
void *ev_parent_ctx, void *ev_parent_ctx,
GtkWidget *ev_parent_wid, GtkWidget *ev_parent_wid,
int l_show_item,
GtkWidget **w); GtkWidget **w);
~CoLogWNavGtk(); ~CoLogWNavGtk();
......
...@@ -80,7 +80,7 @@ void CoLog::log( const char *category, const char *str, const char *cmt, unsigne ...@@ -80,7 +80,7 @@ void CoLog::log( const char *category, const char *str, const char *cmt, unsigne
} }
void CoLog::get( char categories[][20], char *item, void CoLog::get( char categories[][20], char *item,
void item_cb( void *, pwr_tTime, char *, char *), void *ctx) void item_cb( void *, pwr_tTime, char *, char *, char *), void *ctx)
{ {
ifstream fp; ifstream fp;
char line[1024]; char line[1024];
...@@ -98,7 +98,10 @@ void CoLog::get( char categories[][20], char *item, ...@@ -98,7 +98,10 @@ void CoLog::get( char categories[][20], char *item,
parts = dcli_parse( line, " ", "", parts = dcli_parse( line, " ", "",
(char *) line_array, sizeof( line_array)/sizeof( line_array[0]), (char *) line_array, sizeof( line_array)/sizeof( line_array[0]),
sizeof( line_array[0]), 0); sizeof( line_array[0]), 0);
if ( item && cdh_NoCaseStrcmp( line_array[5], item) != 0)
if ( item &&
!(item[strlen(item)-1] == '*' && cdh_NoCaseStrncmp( line_array[5], item, strlen(item)-1) == 0) &&
cdh_NoCaseStrcmp( line_array[5], item) != 0)
continue; continue;
int found = 0; int found = 0;
...@@ -123,9 +126,9 @@ void CoLog::get( char categories[][20], char *item, ...@@ -123,9 +126,9 @@ void CoLog::get( char categories[][20], char *item,
continue; continue;
if ( parts > 6) if ( parts > 6)
item_cb( ctx, time, line_array[4], line_array[6]); item_cb( ctx, time, line_array[4], line_array[5], line_array[6]);
else else
item_cb( ctx, time, line_array[4], 0); item_cb( ctx, time, line_array[4], line_array[5], 0);
} }
} }
......
...@@ -51,7 +51,7 @@ class CoLog ...@@ -51,7 +51,7 @@ class CoLog
void set_default() { m_default_log = this;} void set_default() { m_default_log = this;}
void log( const char *category, const char *str, const char *cmt, unsigned int opt = 0); void log( const char *category, const char *str, const char *cmt, unsigned int opt = 0);
void get( char categories[][20], char *item, void get( char categories[][20], char *item,
void item_cb( void *, pwr_tTime, char *, char *), void *ctx); void item_cb( void *, pwr_tTime, char *, char *, char *), void *ctx);
void push() { m_level++;} void push() { m_level++;}
void pull() { void pull() {
m_level--; m_level--;
...@@ -65,7 +65,7 @@ class CoLog ...@@ -65,7 +65,7 @@ class CoLog
if ( m_default_log) m_default_log->push();} if ( m_default_log) m_default_log->push();}
static void dpull() { static void dpull() {
if ( m_default_log) m_default_log->pull();} if ( m_default_log) m_default_log->pull();}
static void dget( char categories[][20], char *item, void item_cb( void *, pwr_tTime, char *, char *), void *ctx) { static void dget( char categories[][20], char *item, void item_cb( void *, pwr_tTime, char *, char *, char *), void *ctx) {
if ( m_default_log) m_default_log->get( categories, item, item_cb, ctx);} if ( m_default_log) m_default_log->get( categories, item, item_cb, ctx);}
}; };
......
...@@ -36,9 +36,10 @@ ...@@ -36,9 +36,10 @@
CoLogW::CoLogW( CoLogW::CoLogW(
void *msg_parent_ctx, void *msg_parent_ctx,
const char *logw_name, const char *logw_name,
int l_show_item,
pwr_tStatus *status) : pwr_tStatus *status) :
parent_ctx(msg_parent_ctx), logwnav(NULL), displayed(0), parent_ctx(msg_parent_ctx), logwnav(NULL),
size(0), max_size(500), wow(0) size(0), max_size(500), show_item(l_show_item), wow(0)
{ {
*status = 1; *status = 1;
strcpy( name, logw_name); strcpy( name, logw_name);
......
...@@ -38,6 +38,7 @@ class CoLogW { ...@@ -38,6 +38,7 @@ class CoLogW {
CoLogW( CoLogW(
void *msg_parent_ctx, void *msg_parent_ctx,
const char *logw_name, const char *logw_name,
int l_show_item,
pwr_tStatus *status); pwr_tStatus *status);
virtual ~CoLogW() {} virtual ~CoLogW() {}
...@@ -46,9 +47,9 @@ class CoLogW { ...@@ -46,9 +47,9 @@ class CoLogW {
void *parent_ctx; void *parent_ctx;
char name[80]; char name[80];
CoLogWNav *logwnav; CoLogWNav *logwnav;
int displayed;
int size; int size;
int max_size; int max_size;
int show_item;
CoWow *wow; CoWow *wow;
}; };
......
...@@ -123,6 +123,9 @@ void CoLogWNavBrow::create_nodeclasses() ...@@ -123,6 +123,9 @@ void CoLogWNavBrow::create_nodeclasses()
brow_AddAnnot( nc_log, 13, 0.6, 2, brow_AddAnnot( nc_log, 13, 0.6, 2,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine, flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
0); 0);
brow_AddAnnot( nc_log, 30, 0.6, 3,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
1);
brow_AddFrame( nc_log, 0, 0, 35, 0.83, flow_eDrawType_LineGray, -1, 1); brow_AddFrame( nc_log, 0, 0, 35, 0.83, flow_eDrawType_LineGray, -1, 1);
} }
...@@ -185,9 +188,8 @@ int CoLogWNav::init_brow_cb( FlowCtx *fctx, void *client_data) ...@@ -185,9 +188,8 @@ int CoLogWNav::init_brow_cb( FlowCtx *fctx, void *client_data)
return 1; return 1;
} }
CoLogWNav::CoLogWNav( CoLogWNav::CoLogWNav( void *l_parent_ctx, int l_show_item) :
void *ev_parent_ctx) : parent_ctx(l_parent_ctx), show_item(l_show_item)
parent_ctx(ev_parent_ctx)
{ {
} }
...@@ -396,10 +398,14 @@ ItemLog::ItemLog( CoLogWNav *item_logwnav, const char *item_name, ...@@ -396,10 +398,14 @@ ItemLog::ItemLog( CoLogWNav *item_logwnav, const char *item_name,
time_AtoAscii( &time, time_eFormat_ComprDateAndTime, time_str, time_AtoAscii( &time, time_eFormat_ComprDateAndTime, time_str,
sizeof(time_str)); sizeof(time_str));
time_str[17] = 0; time_str[17] = 0;
brow_SetAnnotation( node, 0, time_str, strlen(time_str));
brow_SetAnnotation( node, 1, category, strlen(category)); int annot = 0;
brow_SetAnnotation( node, annot++, time_str, strlen(time_str));
brow_SetAnnotation( node, annot++, category, strlen(category));
if ( logwnav->show_item)
brow_SetAnnotation( node, annot++, item_name, strlen(item_name));
if ( item_comment) if ( item_comment)
brow_SetAnnotation( node, 2, item_comment, strlen(item_comment)); brow_SetAnnotation( node, annot++, item_comment, strlen(item_comment));
if ( (s = strstr( category, "Save"))) if ( (s = strstr( category, "Save")))
brow_SetAnnotPixmap( node, 0, logwnav->brow->pixmap_save); brow_SetAnnotPixmap( node, 0, logwnav->brow->pixmap_save);
...@@ -414,11 +420,12 @@ ItemLog::ItemLog( CoLogWNav *item_logwnav, const char *item_name, ...@@ -414,11 +420,12 @@ ItemLog::ItemLog( CoLogWNav *item_logwnav, const char *item_name,
} }
void CoLogWNav::item_cb( void *ctx, pwr_tTime time, char *category, char *comment) void CoLogWNav::item_cb( void *ctx, pwr_tTime time, char *category, char *item,
char *comment)
{ {
CoLogWNav *logwnav = (CoLogWNav *)ctx; CoLogWNav *logwnav = (CoLogWNav *)ctx;
new ItemLog( logwnav, "Log", time, category, comment, 0, flow_eDest_IntoLast); new ItemLog( logwnav, item, time, category, comment, 0, flow_eDest_IntoLast);
} }
void CoLogWNav::show( char categories[][20], char *item) void CoLogWNav::show( char categories[][20], char *item)
......
...@@ -65,11 +65,12 @@ class CoLogWNavBrow { ...@@ -65,11 +65,12 @@ class CoLogWNavBrow {
class CoLogWNav { class CoLogWNav {
public: public:
CoLogWNav( CoLogWNav(
void *ev_parent_ctx); void *l_parent_ctx, int l_show_item);
virtual ~CoLogWNav(); virtual ~CoLogWNav();
void *parent_ctx; void *parent_ctx;
CoLogWNavBrow *brow; CoLogWNavBrow *brow;
int show_item;
virtual void set_input_focus() {} virtual void set_input_focus() {}
...@@ -79,7 +80,8 @@ class CoLogWNav { ...@@ -79,7 +80,8 @@ class CoLogWNav {
static int init_brow_cb( FlowCtx *fctx, void *client_data); static int init_brow_cb( FlowCtx *fctx, void *client_data);
static int brow_cb( FlowCtx *ctx, flow_tEvent event); static int brow_cb( FlowCtx *ctx, flow_tEvent event);
static void item_cb( void *ctx, pwr_tTime time, char *category, char *comment); static void item_cb( void *ctx, pwr_tTime time, char *category, char *item,
char *comment);
}; };
class ItemLog { class ItemLog {
......
...@@ -146,6 +146,15 @@ SObject pwrb:Class ...@@ -146,6 +146,15 @@ SObject pwrb:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "PlcSave"
Attr MethodArguments[1] = "Descendants"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPoson $Menu Object NavigatorPoson $Menu
...@@ -163,6 +172,15 @@ SObject pwrb:Class ...@@ -163,6 +172,15 @@ SObject pwrb:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "PlcSave"
Attr MethodArguments[1] = "Descendants"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPosos $Menu Object NavigatorPosos $Menu
...@@ -180,6 +198,15 @@ SObject pwrb:Class ...@@ -180,6 +198,15 @@ SObject pwrb:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "PlcSave"
Attr MethodArguments[1] = "Descendants"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPosms $Menu Object NavigatorPosms $Menu
...@@ -197,6 +224,15 @@ SObject pwrb:Class ...@@ -197,6 +224,15 @@ SObject pwrb:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "PlcSave"
Attr MethodArguments[1] = "Descendants"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPosmn $Menu Object NavigatorPosmn $Menu
...@@ -214,6 +250,15 @@ SObject pwrb:Class ...@@ -214,6 +250,15 @@ SObject pwrb:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "PlcSave"
Attr MethodArguments[1] = "Descendants"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object ConfiguratorPoson $Menu Object ConfiguratorPoson $Menu
......
...@@ -202,6 +202,14 @@ SObject pwrb:Class ...@@ -202,6 +202,14 @@ SObject pwrb:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "GeSave"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPoson $Menu Object NavigatorPoson $Menu
...@@ -219,6 +227,14 @@ SObject pwrb:Class ...@@ -219,6 +227,14 @@ SObject pwrb:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "GeSave"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPosos $Menu Object NavigatorPosos $Menu
...@@ -236,6 +252,14 @@ SObject pwrb:Class ...@@ -236,6 +252,14 @@ SObject pwrb:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "GeSave"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPosms $Menu Object NavigatorPosms $Menu
...@@ -253,6 +277,14 @@ SObject pwrb:Class ...@@ -253,6 +277,14 @@ SObject pwrb:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "GeSave"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPosmn $Menu Object NavigatorPosmn $Menu
...@@ -270,6 +302,14 @@ SObject pwrb:Class ...@@ -270,6 +302,14 @@ SObject pwrb:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "GeSave"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
EndObject EndObject
......
...@@ -135,6 +135,15 @@ SObject pwrs:Class ...@@ -135,6 +135,15 @@ SObject pwrs:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "PlcSave"
Attr MethodArguments[1] = "Descendants"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPoson $Menu Object NavigatorPoson $Menu
...@@ -146,6 +155,15 @@ SObject pwrs:Class ...@@ -146,6 +155,15 @@ SObject pwrs:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "PlcSave"
Attr MethodArguments[1] = "Descendants"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPosos $Menu Object NavigatorPosos $Menu
...@@ -157,6 +175,15 @@ SObject pwrs:Class ...@@ -157,6 +175,15 @@ SObject pwrs:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "PlcSave"
Attr MethodArguments[1] = "Descendants"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPosms $Menu Object NavigatorPosms $Menu
...@@ -168,6 +195,15 @@ SObject pwrs:Class ...@@ -168,6 +195,15 @@ SObject pwrs:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "PlcSave"
Attr MethodArguments[1] = "Descendants"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object NavigatorPosmn $Menu Object NavigatorPosmn $Menu
...@@ -179,6 +215,15 @@ SObject pwrs:Class ...@@ -179,6 +215,15 @@ SObject pwrs:Class
Attr FilterName = "$Object-BuildFilter" Attr FilterName = "$Object-BuildFilter"
EndBody EndBody
EndObject EndObject
Object History $MenuButton
Body SysBody
Attr ButtonName = "History"
Attr MethodName = "$Object-History"
Attr FilterName = "$Object-HistoryFilter"
Attr MethodArguments[0] = "PlcSave"
Attr MethodArguments[1] = "Descendants"
EndBody
EndObject
EndObject EndObject
EndObject EndObject
Object ConfiguratorPoson $Menu Object ConfiguratorPoson $Menu
......
...@@ -115,7 +115,7 @@ void WFoeGtk::activate_history( GtkWidget *w, gpointer data) ...@@ -115,7 +115,7 @@ void WFoeGtk::activate_history( GtkWidget *w, gpointer data)
strcpy( title, "History "); strcpy( title, "History ");
strcat( title, wname); strcat( title, wname);
CoLogWGtk *logw = new CoLogWGtk( foe, ((WFoeGtk *)foe)->toplevel, title, &sts); CoLogWGtk *logw = new CoLogWGtk( foe, ((WFoeGtk *)foe)->toplevel, title, 0, &sts);
logw->show( categories, wname); logw->show( categories, wname);
} }
......
...@@ -47,6 +47,7 @@ extern "C" { ...@@ -47,6 +47,7 @@ extern "C" {
#include "wb_wnav_item.h" #include "wb_wnav_item.h"
#include "co_wow_gtk.h" #include "co_wow_gtk.h"
#include "co_login_gtk.h" #include "co_login_gtk.h"
#include "co_logw_gtk.h"
#include "wb_wge_gtk.h" #include "wb_wge_gtk.h"
#include "ge_gtk.h" #include "ge_gtk.h"
#include "wb_wda_gtk.h" #include "wb_wda_gtk.h"
...@@ -263,6 +264,29 @@ wb_utl *WNavGtk::utl_new() ...@@ -263,6 +264,29 @@ wb_utl *WNavGtk::utl_new()
return utl; return utl;
} }
void WNavGtk::logw_new( char *item, wlog_eCategory *categories, int show_item)
{
char categories_str[10][20];
char title[300];
pwr_tStatus sts;
for ( unsigned int i = 0; i < sizeof(categories_str)/sizeof(categories_str[0]); i++) {
if ( categories[i] == wlog_eCategory_) {
strcpy( categories_str[i], "");
break;
}
else
wb_log::category_to_string( categories[i], categories_str[i]);
}
strcpy( title, "History ");
strcat( title, item);
if ( title[strlen(title)-1] == '*')
title[strlen(title)-1] = 0;
CoLogWGtk *logw = new CoLogWGtk( this, parent_wid, title, show_item, &sts);
logw->show( categories_str, item);
}
void WNavGtk::sel_convert_cb( GtkWidget *w, GtkSelectionData *selection_data, void WNavGtk::sel_convert_cb( GtkWidget *w, GtkSelectionData *selection_data,
guint info, guint time_stamp, gpointer data) guint info, guint time_stamp, gpointer data)
{ {
......
...@@ -74,6 +74,7 @@ class WNavGtk : public WNav { ...@@ -74,6 +74,7 @@ class WNavGtk : public WNav {
void wge_modal_loop( WGe *wge); void wge_modal_loop( WGe *wge);
bool has_window() {return parent_wid ? true : false;} bool has_window() {return parent_wid ? true : false;}
wb_utl *utl_new(); wb_utl *utl_new();
void logw_new( char *item, wlog_eCategory *categories, int show_item);
CoLogin *login_new( const char *name, const char *groupname, CoLogin *login_new( const char *name, const char *groupname,
void (* bc_success)( void *), void (* bc_cancel)( void *), pwr_tStatus *status); void (* bc_success)( void *), void (* bc_cancel)( void *), pwr_tStatus *status);
......
...@@ -142,7 +142,7 @@ void WPkgGtk::activate_history( GtkWidget *w, gpointer data) ...@@ -142,7 +142,7 @@ void WPkgGtk::activate_history( GtkWidget *w, gpointer data)
strcpy( categories[2], ""); strcpy( categories[2], "");
strcpy( title, "Distributor History"); strcpy( title, "Distributor History");
CoLogWGtk *logw = new CoLogWGtk( wpkg, ((WPkgGtk *)wpkg)->toplevel, title, &sts); CoLogWGtk *logw = new CoLogWGtk( wpkg, ((WPkgGtk *)wpkg)->toplevel, title, 1, &sts);
logw->show( categories, 0); logw->show( categories, 0);
} }
......
...@@ -978,7 +978,7 @@ void WttGtk::activate_history( GtkWidget *w, gpointer data) ...@@ -978,7 +978,7 @@ void WttGtk::activate_history( GtkWidget *w, gpointer data)
strcpy( title, "History Configurator "); strcpy( title, "History Configurator ");
strcat( title, vname); strcat( title, vname);
CoLogWGtk *logw = new CoLogWGtk( wtt, ((WttGtk *)wtt)->parent_wid, title, &sts); CoLogWGtk *logw = new CoLogWGtk( wtt, ((WttGtk *)wtt)->parent_wid, title, 0, &sts);
logw->show( categories, vname); logw->show( categories, vname);
} }
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include "pwr.h" #include "pwr.h"
#include "pwr_baseclasses.h"
#include "wb_pwrs.h" #include "wb_pwrs.h"
#include "wb_ldh_msg.h" #include "wb_ldh_msg.h"
#include "wb_ldh.h" #include "wb_ldh.h"
...@@ -960,6 +961,74 @@ static pwr_tStatus BuildFilter( ldh_sMenuCall *ip) ...@@ -960,6 +961,74 @@ static pwr_tStatus BuildFilter( ldh_sMenuCall *ip)
return 0; return 0;
} }
//
// History log
//
static pwr_tStatus History( ldh_sMenuCall *ip)
{
pwr_tStatus sts;
pwr_tOName oname;
char item[300];
int size;
pwr_sMenuButton mb;
pwr_tCmd cmd;
char categories[80];
int showitem = 0;
pwr_tCid cid;
char *action;
char *s;
sts = ldh_ObjidToName(ip->PointedSession, ip->Pointed.Objid,
ldh_eName_VolPath, oname, sizeof(oname), &size);
if (EVEN(sts)) return sts;
sts = ldh_GetObjectClass(ip->PointedSession, ip->Pointed.Objid, &cid);
if (EVEN(sts)) return sts;
sts = ldh_ReadObjectBody(ip->PointedSession, ip->ItemList[ip->ChosenItem].MenuObject,
"SysBody", &mb, sizeof(pwr_sMenuButton));
switch ( cid) {
case pwr_cClass_XttGraph:
// Get action attribute
sts = ldh_GetObjectPar( ip->PointedSession, ip->Pointed.Objid, "RtBody",
"Action", &action, &size);
if ( EVEN(sts)) return sts;
strcpy( item, action);
free( action);
if ( (s = strstr( item, ".pwg")))
*s = 0;
else
return 1;
strcpy( categories, mb.MethodArguments[0]);
showitem = 1;
break;
default:
// Item is object name
strcpy( item, oname);
strcpy( categories, mb.MethodArguments[0]);
if (strcmp(mb.MethodArguments[1], "Descendants") == 0) {
strcat( item, "*");
showitem = 1;
}
}
sprintf( cmd, "open history/item=\"%s\"/categories=\"%s\"", item, categories);
if ( showitem)
strcat( cmd, "/showitem");
ip->wnav->command( cmd);
return 1;
}
static pwr_tStatus HistoryFilter( ldh_sMenuCall *ip)
{
return 1;
}
pwr_dExport pwr_BindMethods($Object) = { pwr_dExport pwr_BindMethods($Object) = {
pwr_BindMethod(CreateObject), pwr_BindMethod(CreateObject),
...@@ -987,6 +1056,8 @@ pwr_dExport pwr_BindMethods($Object) = { ...@@ -987,6 +1056,8 @@ pwr_dExport pwr_BindMethods($Object) = {
pwr_BindMethod(ConfigureComponent), pwr_BindMethod(ConfigureComponent),
pwr_BindMethod(ConfigureComponentFilter), pwr_BindMethod(ConfigureComponentFilter),
pwr_BindMethod(BuildFilter), pwr_BindMethod(BuildFilter),
pwr_BindMethod(History),
pwr_BindMethod(HistoryFilter),
pwr_NullMethod pwr_NullMethod
}; };
......
...@@ -66,6 +66,10 @@ ...@@ -66,6 +66,10 @@
#include "wb.h" #include "wb.h"
#endif #endif
#ifndef wb_log_h
#include "wb_log.h"
#endif
#define wnav_cVersion "X3.3a" #define wnav_cVersion "X3.3a"
#define wnav_cScriptDescKey "!** Description" #define wnav_cScriptDescKey "!** Description"
...@@ -313,6 +317,7 @@ class WNav : public WUtility{ ...@@ -313,6 +317,7 @@ class WNav : public WUtility{
virtual void wge_modal_loop( WGe *wge) {} virtual void wge_modal_loop( WGe *wge) {}
virtual bool has_window() {return false;} virtual bool has_window() {return false;}
virtual wb_utl *utl_new() {return 0;} virtual wb_utl *utl_new() {return 0;}
virtual void logw_new( char *item, wlog_eCategory *categories, int show_item) {}
virtual CoLogin *login_new( const char *name, const char *groupname, virtual CoLogin *login_new( const char *name, const char *groupname,
void (* bc_success)( void *), void (* bc_cancel)( void *), void (* bc_success)( void *), void (* bc_cancel)( void *),
pwr_tStatus *status) { return 0;} pwr_tStatus *status) { return 0;}
......
...@@ -72,6 +72,7 @@ ...@@ -72,6 +72,7 @@
#include "wb_pkg.h" #include "wb_pkg.h"
#include "wb_build.h" #include "wb_build.h"
#include "wb_wtt.h" #include "wb_wtt.h"
#include "wb_log.h"
#include "ge.h" #include "ge.h"
#include "wb_utl.h" #include "wb_utl.h"
...@@ -255,7 +256,7 @@ dcli_tCmdTable wnav_command_table[] = { ...@@ -255,7 +256,7 @@ dcli_tCmdTable wnav_command_table[] = {
{ "dcli_arg1", "dcli_arg2", "/NAME", "/FILE", { "dcli_arg1", "dcli_arg2", "/NAME", "/FILE",
"/SCROLLBAR", "/WIDTH", "/HEIGHT", "/MENU", "/SCROLLBAR", "/WIDTH", "/HEIGHT", "/MENU",
"/NAVIGATOR", "/CENTER", "/OBJECT", "/MODAL", "/INSTANCE", "/TITLE", "/NAVIGATOR", "/CENTER", "/OBJECT", "/MODAL", "/INSTANCE", "/TITLE",
"/VOLUME", ""} "/VOLUME", "/ITEM", "/SHOWITEM", "/CATEGORIES", ""}
}, },
{ {
"CLOSE", "CLOSE",
...@@ -3589,6 +3590,46 @@ static int wnav_open_func( void *client_data, ...@@ -3589,6 +3590,46 @@ static int wnav_open_func( void *client_data,
wge->close_cb = wnav_wge_close_cb; wge->close_cb = wnav_wge_close_cb;
} }
} }
else if ( strncmp( arg1_str, "HISTORY", strlen( arg1_str)) == 0)
{
char categoriesstr[80];
pwr_tAName itemstr;
int showitem;
char cvect[10][20];
wlog_eCategory categories[10];
int nr;
// Command is "OPEN HISTORY"
if ( EVEN( dcli_get_qualifier( "/ITEM", itemstr, sizeof(itemstr)))) {
wnav->message('E', "Item is missing");
return WNAV__SYNTAX;
}
showitem = ODD( dcli_get_qualifier( "/SHOWITEM", 0, 0));
if ( EVEN( dcli_get_qualifier( "/CATEGORIES", categoriesstr, sizeof(categoriesstr)))) {
wnav->message('E', "Categories are missing");
return WNAV__SYNTAX;
}
nr = dcli_parse( categoriesstr, ",", "", (char *)cvect,
sizeof( cvect) / sizeof( cvect[0]), sizeof( cvect[0]), 0);
if ( nr == 0) {
wnav->message('E',"Syntax error");
return WNAV__SYNTAX;
}
if ( nr > 9)
nr = 9;
for ( int i = 0; i < nr; i++) {
wb_log::string_to_category( cvect[i], &categories[i]);
}
categories[nr] = wlog_eCategory_;
wnav->logw_new( itemstr, categories, showitem);
}
else else
{ {
wnav->message('E', "Syntax error"); wnav->message('E', "Syntax error");
......
#define xnav_bitmap_build12_width 12 #define xnav_bitmap_build12_width 12
#define xnav_bitmap_build12_height 12 #define xnav_bitmap_build12_height 12
static unsigned char xnav_bitmap_build12_bits[] = { static unsigned char xnav_bitmap_build12_bits[] = {
0x34, 0x00, 0xbe, 0x00, 0xd4, 0x01, 0xab, 0x00, 0xd7, 0x01, 0xaa, 0x01, 0x30, 0x01, 0xfa, 0x03, 0x87, 0x01, 0x76, 0x02, 0x8a, 0x06, 0xab, 0x06,
0x57, 0x00, 0xfa, 0x06, 0xd8, 0x05, 0x80, 0x0a, 0x00, 0x0d, 0x00, 0x03}; 0x8b, 0x02, 0x72, 0x03, 0x0c, 0x07, 0xfe, 0x02, 0x64, 0x00, 0x00, 0x00};
#define xnav_bitmap_copy12_width 12 #define xnav_bitmap_copy12_width 12
#define xnav_bitmap_copy12_height 12 #define xnav_bitmap_copy12_height 12
static unsigned char xnav_bitmap_copy12_bits[] = { static unsigned char xnav_bitmap_copy12_bits[] = {
0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x04, 0x02, 0xf2, 0x04, 0x0a, 0x05, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x98, 0x01, 0x6d, 0x0b, 0x97, 0x0e,
0x91, 0x08, 0x0a, 0x05, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 0x0f, 0x0f, 0x0f, 0x0f, 0x9f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
...@@ -677,7 +677,7 @@ void GeGtk::activate_history( GtkWidget *w, gpointer data) ...@@ -677,7 +677,7 @@ void GeGtk::activate_history( GtkWidget *w, gpointer data)
strcpy( title, "History "); strcpy( title, "History ");
strcat( title, name); strcat( title, name);
CoLogWGtk *logw = new CoLogWGtk( ge, ((GeGtk *)ge)->toplevel, title, &sts); CoLogWGtk *logw = new CoLogWGtk( ge, ((GeGtk *)ge)->toplevel, title, 0, &sts);
logw->show( categories, name); logw->show( categories, name);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment