Commit 0cf9d9ce authored by Claes Sjofors's avatar Claes Sjofors

Variable textsize in Wow::CreateList

parent 3e7f9be0
...@@ -123,3 +123,4 @@ ...@@ -123,3 +123,4 @@
091005 cs gdh Bugfix in DetachedVolume. Attaching objects on a remote node didn't work. 091005 cs gdh Bugfix in DetachedVolume. Attaching objects on a remote node didn't work.
091005 cs statusmon Change node dialog and language support added. Some documentation. 091005 cs statusmon Change node dialog and language support added. Some documentation.
091014 cs doc Links in Designer's Guide updated and code format added in html version. 091014 cs doc Links in Designer's Guide updated and code format added in html version.
091020 cs co wow_CreateList now with variable text size.
\ No newline at end of file
...@@ -220,6 +220,7 @@ class WowListCtx { ...@@ -220,6 +220,7 @@ class WowListCtx {
GtkWidget *toplevel; GtkWidget *toplevel;
GtkWidget *list; GtkWidget *list;
char *texts; char *texts;
int textsize;
void (* action_cb) ( void *, char *); void (* action_cb) ( void *, char *);
void (* cancel_cb) ( void *); void (* cancel_cb) ( void *);
void *parent_ctx; void *parent_ctx;
...@@ -240,7 +241,7 @@ void CoWowGtk::list_apply_cb ( ...@@ -240,7 +241,7 @@ void CoWowGtk::list_apply_cb (
{ {
WowListCtx *ctx = (WowListCtx *) data; WowListCtx *ctx = (WowListCtx *) data;
char *text; char *text;
static char selected_text[80]; static char selected_text[512];
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel *store; GtkTreeModel *store;
...@@ -307,6 +308,7 @@ static gboolean list_delete_event( GtkWidget *w, GdkEvent *event, gpointer data) ...@@ -307,6 +308,7 @@ static gboolean list_delete_event( GtkWidget *w, GdkEvent *event, gpointer data)
void *CoWowGtk::CreateList ( void *CoWowGtk::CreateList (
const char *title, const char *title,
const char *texts, const char *texts,
int textsize,
void (action_cb)( void *, char *), void (action_cb)( void *, char *),
void (cancel_cb)( void *), void (cancel_cb)( void *),
void *parent_ctx, void *parent_ctx,
...@@ -345,7 +347,7 @@ void *CoWowGtk::CreateList ( ...@@ -345,7 +347,7 @@ void *CoWowGtk::CreateList (
gtk_list_store_append( store, &iter); gtk_list_store_append( store, &iter);
gtk_list_store_set( store, &iter, 0, nameutf8, -1); gtk_list_store_set( store, &iter, 0, nameutf8, -1);
name_p += 80; name_p += textsize;
i++; i++;
g_free( nameutf8); g_free( nameutf8);
} }
...@@ -409,8 +411,9 @@ void *CoWowGtk::CreateList ( ...@@ -409,8 +411,9 @@ void *CoWowGtk::CreateList (
// GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(ctx->list)); // GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(ctx->list));
// gtk_tree_selection_set_mode( selection, GTK_SELECTION_SINGLE); // gtk_tree_selection_set_mode( selection, GTK_SELECTION_SINGLE);
ctx->texts = (char *) calloc( i+1, 80); ctx->texts = (char *) calloc( i+1, textsize);
memcpy( ctx->texts, texts, (i+1) * 80); memcpy( ctx->texts, texts, (i+1) * textsize);
ctx->textsize = textsize;
// Set input focus to the scrolled list widget // Set input focus to the scrolled list widget
gtk_widget_grab_focus( ctx->list); gtk_widget_grab_focus( ctx->list);
......
...@@ -96,7 +96,7 @@ class CoWowGtk : public CoWow { ...@@ -96,7 +96,7 @@ class CoWowGtk : public CoWow {
void *data); void *data);
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, void *CreateList( const char *title, const char *texts, int textsize,
void (action_cb)( void *, char *), void (action_cb)( void *, char *),
void (cancel_cb)( void *), void (cancel_cb)( void *),
void *ctx, void *ctx,
......
...@@ -242,11 +242,11 @@ void CoWowMotif::list_ok_cb( Widget w, XtPointer data, ...@@ -242,11 +242,11 @@ void CoWowMotif::list_ok_cb( Widget w, XtPointer data,
{ {
wow_tListCtx ctx = (wow_tListCtx) data; wow_tListCtx ctx = (wow_tListCtx) data;
int *pos_list, pos_cnt; int *pos_list, pos_cnt;
static char selected_text[80]; static char selected_text[512];
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) * 80); 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);
XtFree( (char *)pos_list); XtFree( (char *)pos_list);
...@@ -276,7 +276,7 @@ void CoWowMotif::list_action_cb( Widget w, XtPointer data, ...@@ -276,7 +276,7 @@ void CoWowMotif::list_action_cb( Widget w, XtPointer data,
{ {
wow_tListCtx ctx = (wow_tListCtx) data; wow_tListCtx ctx = (wow_tListCtx) data;
char *item_str; char *item_str;
static char action_text[80]; static char action_text[512];
if ( cbs->event->type == KeyPress) if ( cbs->event->type == KeyPress)
// The ok callback will be called later // The ok callback will be called later
...@@ -295,7 +295,7 @@ void CoWowMotif::list_action_cb( Widget w, XtPointer data, ...@@ -295,7 +295,7 @@ void CoWowMotif::list_action_cb( Widget w, XtPointer data,
free( ctx); free( ctx);
} }
void *CoWowMotif::CreateList( const char *title, const char *texts, void *CoWowMotif::CreateList( const char *title, const char *texts, int textsize,
void (action_cb)( void *, char *), void (action_cb)( void *, char *),
void (cancel_cb)( void *), void (cancel_cb)( void *),
void *parent_ctx, void *parent_ctx,
...@@ -412,12 +412,13 @@ void *CoWowMotif::CreateList( const char *title, const char *texts, ...@@ -412,12 +412,13 @@ void *CoWowMotif::CreateList( const char *title, const char *texts,
cstr = XmStringCreateSimple( name_p); cstr = XmStringCreateSimple( name_p);
XmListAddItemUnselected( ctx->list, cstr, 0); XmListAddItemUnselected( ctx->list, cstr, 0);
XmStringFree(cstr); XmStringFree(cstr);
name_p += 80; name_p += textsize;
i++; i++;
} }
ctx->texts = (char *) calloc( i+1, 80); ctx->texts = (char *) calloc( i+1, textsize);
memcpy( ctx->texts, texts, (i+1) * 80); ctx->textsize = textsize;
memcpy( ctx->texts, texts, (i+1) * textsize);
XtPopup( ctx->toplevel, XtGrabNone); XtPopup( ctx->toplevel, XtGrabNone);
// Set input focus to the scrolled list widget // Set input focus to the scrolled list widget
......
...@@ -32,6 +32,7 @@ typedef struct { ...@@ -32,6 +32,7 @@ typedef struct {
Widget toplevel; Widget toplevel;
Widget list; Widget list;
char *texts; char *texts;
int textsize;
void (* action_cb) ( void *, char *); void (* action_cb) ( void *, char *);
void (* cancel_cb) ( void *); void (* cancel_cb) ( void *);
void *parent_ctx; void *parent_ctx;
......
...@@ -91,7 +91,7 @@ class CoWow { ...@@ -91,7 +91,7 @@ class CoWow {
void *data) {} void *data) {}
virtual void DisplayError( const char *title, const char *text) {} virtual void DisplayError( const char *title, const char *text) {}
virtual void DisplayText( const char *title, const char *text) {} virtual void DisplayText( const char *title, const char *text) {}
virtual void *CreateList( const char *title, const char *texts, virtual void *CreateList( const char *title, const char *texts, int textsize,
void (action_cb)( void *, char *), void (action_cb)( void *, char *),
void (cancel_cb)( void *), void (cancel_cb)( void *),
void *ctx, void *ctx,
......
...@@ -91,7 +91,7 @@ pwr_tStatus WCast::open_castlist() ...@@ -91,7 +91,7 @@ pwr_tStatus WCast::open_castlist()
} }
strcpy( class_vect[class_cnt], ""); strcpy( class_vect[class_cnt], "");
wow->CreateList( name, (char *)class_vect, selected_cb, 0, (void *)this); wow->CreateList( name, (char *)class_vect, 80, selected_cb, 0, (void *)this);
return 1; return 1;
} }
......
...@@ -175,7 +175,7 @@ void Wda::open_attr_dialog() ...@@ -175,7 +175,7 @@ void Wda::open_attr_dialog()
strcpy( attr_vect[attr_cnt], ""); strcpy( attr_vect[attr_cnt], "");
wow->CreateList( "Attributes", (char *)attr_vect, wow->CreateList( "Attributes", (char *)attr_vect, 80,
set_attr_cb, 0, (void *)this); set_attr_cb, 0, (void *)this);
} }
......
...@@ -145,4 +145,5 @@ ...@@ -145,4 +145,5 @@
090916 cs xtt Alarm time viewed in operator window. 090916 cs xtt Alarm time viewed in operator window.
090916 cs xtt New xtt command 'show objectlist /class='. 090916 cs xtt New xtt command 'show objectlist /class='.
090916 cs xtt New xtt commands 'create opmenuitem' and 'delete opmenuitem' to modify operator window menu.. 090916 cs xtt New xtt commands 'create opmenuitem' and 'delete opmenuitem' to modify operator window menu..
090930 cs ge Java compile problems for subgraphs with multiple annotations fixed. 090930 cs ge Java compile problems for subgraphs with multiple annotations fixed.
\ No newline at end of file 091020 cs xtt Buggfix in System Messages, zip-files >= version 10 was not opened in the correct order in next/prev file.
\ No newline at end of file
...@@ -714,7 +714,7 @@ void Xtt::list_opplace() ...@@ -714,7 +714,7 @@ void Xtt::list_opplace()
} }
else else
// Select oplace from list // Select oplace from list
wow->CreateList( "Select Operator Place", (char *)texts, opplace_selected_cb, 0, this); wow->CreateList( "Select Operator Place", (char *)texts, 80, opplace_selected_cb, 0, this);
} }
......
...@@ -109,7 +109,7 @@ void GeGtk::create_list( const char *title, const char *texts, ...@@ -109,7 +109,7 @@ void GeGtk::create_list( const char *title, const char *texts,
void (action_cb)( void *, char *), void *ctx) void (action_cb)( void *, char *), void *ctx)
{ {
CoWowGtk wow( toplevel); CoWowGtk wow( toplevel);
wow.CreateList( title, texts, action_cb, 0, ctx, 1); wow.CreateList( title, texts, 80, action_cb, 0, ctx, 1);
} }
void GeGtk::subgraphs_new() void GeGtk::subgraphs_new()
......
...@@ -78,7 +78,7 @@ void GeMotif::create_list( const char *title, const char *texts, ...@@ -78,7 +78,7 @@ void GeMotif::create_list( const char *title, const char *texts,
void (action_cb)( void *, char *), void *ctx) void (action_cb)( void *, char *), void *ctx)
{ {
CoWowMotif wow( toplevel); CoWowMotif wow( toplevel);
wow.CreateList( title, texts, action_cb, 0, ctx); wow.CreateList( title, texts, 80, action_cb, 0, ctx);
} }
void GeMotif::subgraphs_new() void GeMotif::subgraphs_new()
......
...@@ -310,7 +310,7 @@ void CLogGtk::activate_select_file( GtkWidget *w, gpointer data) ...@@ -310,7 +310,7 @@ void CLogGtk::activate_select_file( GtkWidget *w, gpointer data)
strcat( str[i], clog->clognav->file_list[i].name); strcat( str[i], clog->clognav->file_list[i].name);
} }
clog->wow->CreateList( "Select File", (char *)str, file_selected_cb, 0, clog); clog->wow->CreateList( "Select File", (char *)str, 80, file_selected_cb, 0, clog);
free( str); free( str);
} }
......
...@@ -373,20 +373,21 @@ void CLogNav::get_files() ...@@ -373,20 +373,21 @@ void CLogNav::get_files()
} }
dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_END); dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_END);
sprintf( file_spec, "$pwrp_log/pwr_%s.log.*.gz", nodename); for ( int i = 1; i < 21; i++) {
sts = dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_INIT); sprintf( file_spec, "$pwrp_log/pwr_%s.log.%d.gz", nodename, i);
while ( ODD(sts)) { sts = dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_INIT);
if ( ODD(sts)) {
stat( found_file, &info); stat( found_file, &info);
time.tv_sec = info.st_ctime; time.tv_sec = info.st_ctime;
CLogFile *cf = new CLogFile( found_file, time); CLogFile *cf = new CLogFile( found_file, time);
file_list.push_back( *cf); file_list.push_back( *cf);
delete cf; delete cf;
sts = dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_NEXT); }
dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_END);
} }
dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_END);
} }
......
...@@ -1948,7 +1948,7 @@ static int xnav_show_func( void *client_data, ...@@ -1948,7 +1948,7 @@ static int xnav_show_func( void *client_data,
int cnt = 0; int cnt = 0;
pwr_tObjName class_str; pwr_tObjName class_str;
char title_str[80]; char title_str[80];
pwr_tString80 *names; pwr_tOName *names;
xnav_sObjectList *ctx; xnav_sObjectList *ctx;
pwr_tCid cid; pwr_tCid cid;
...@@ -1968,14 +1968,14 @@ static int xnav_show_func( void *client_data, ...@@ -1968,14 +1968,14 @@ static int xnav_show_func( void *client_data,
sts = gdh_GetNextAttrRef( cid, &aref, &aref)) { sts = gdh_GetNextAttrRef( cid, &aref, &aref)) {
cnt++; cnt++;
} }
names = (pwr_tString80 *)calloc( cnt, sizeof(pwr_tString80)); names = (pwr_tOName *)calloc( cnt, sizeof(pwr_tOName));
int idx = 0; int idx = 0;
for ( sts = gdh_GetClassListAttrRef( cid, &aref); for ( sts = gdh_GetClassListAttrRef( cid, &aref);
ODD(sts); ODD(sts);
sts = gdh_GetNextAttrRef( cid, &aref, &aref)) { sts = gdh_GetNextAttrRef( cid, &aref, &aref)) {
sts = gdh_AttrrefToName( &aref, names[idx], sizeof(names[0]), sts = gdh_AttrrefToName( &aref, names[idx], sizeof(names[0]),
cdh_mName_volumeStrict); cdh_mNName /* cdh_mName_volumeStrict */ );
if ( EVEN(sts)) continue; if ( EVEN(sts)) continue;
idx++; idx++;
...@@ -1995,7 +1995,7 @@ static int xnav_show_func( void *client_data, ...@@ -1995,7 +1995,7 @@ static int xnav_show_func( void *client_data,
ctx->cid = cid; ctx->cid = cid;
ctx->xnav = xnav; ctx->xnav = xnav;
xnav->wow->CreateList( title_str, (char *)names, 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);
} }
...@@ -3089,7 +3089,8 @@ static int xnav_open_func( void *client_data, ...@@ -3089,7 +3089,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, xnav_open_shist_cb, xnav_open_shist_cancel_cb, ctx); xnav->wow->CreateList( "History List", (char *)cname, sizeof(cname[0]), xnav_open_shist_cb,
xnav_open_shist_cancel_cb, ctx);
} }
else if ( strncmp( arg1_str, "HISTORY", strlen( arg1_str)) == 0) else if ( strncmp( arg1_str, "HISTORY", strlen( arg1_str)) == 0)
{ {
......
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