Use i18n calls for treeview strings.

git-svn-id: svn://10.0.0.236/trunk@12619 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
slamm%netscape.com 1998-10-12 22:24:13 +00:00
parent f3d1e1ef76
commit 83752c0f9f
3 changed files with 75 additions and 63 deletions

View File

@ -31,6 +31,11 @@
#include "xpgetstr.h"
#include "RDFImage.h"
#include "felocale.h" // fe_ConvertToXmString()
#include "RDFUtils.h"
#include <XmL/Tree.h>
#include <Xfe/Xfe.h>
@ -661,21 +666,17 @@ XFE_RDFTreeView::add_row(int row)
}
void
XFE_RDFTreeView::add_row
(HT_Resource node)
XFE_RDFTreeView::add_row(HT_Resource node)
{
//HT_Resource node = GetNthItem (_ht_view, row);
int row = HT_GetNodeIndex(_ht_view, node);
char *name = HT_GetNodeName(node);
int depth = HT_GetItemIndentation(node);
Boolean expands = HT_IsContainer(node);
Boolean isExpanded = HT_IsContainerOpen(node);
/*D( fprintf(stderr,"XFE_RDFTreeView::add_row(0x%x %d) name(%s) depth(%d)\n",
node,row, name, depth);)*/
Pixmap pixmap, mask;
#if 0
#if DEBUG_mcafeexxx
// Using this for debugging. -mcafee
static PRBool firstRow = PR_TRUE;
@ -687,8 +688,6 @@ XFE_RDFTreeView::add_row
}
#endif
//pixmap = XmUNSPECIFIED_PIXMAP;
//pixmask = XmUNSPECIFIED_PIXMAP;
if (expands && isExpanded) {
pixmap = openedFolder.pixmap;
mask = openedFolder.mask;
@ -700,68 +699,76 @@ XFE_RDFTreeView::add_row
mask = bookmark.mask;
}
XmString xmstr = XmStringCreateSimple(name);
XmLTreeAddRow(_tree,
depth,
expands,
isExpanded,
row,
pixmap,
mask,
xmstr);
XmStringFree(xmstr);
XmLTreeAddRow(_tree, depth, expands, isExpanded, row, pixmap, mask, NULL);
int column_count;
// Should only need to do this for visible columns
XtVaGetValues(_tree, XmNcolumns, &column_count, NULL);
void *data;
for (int ii = 0; ii < column_count; ii++)
{
XFE_ColumnData *column_data = getColumnData(ii);
if (column_data)
{
Boolean is_editable = False;
if (isStandAlone())
{
is_editable = HT_IsNodeDataEditable(node,
column_data->token,
column_data->token_type);
}
XtVaSetValues(_tree,
XmNrow, row,
XmNcolumn, ii,
XmNcellEditable, is_editable,
NULL);
initCell(node, row, ii);
}
}
if (HT_GetNodeData (node, column_data->token,
column_data->token_type, &data)
&& data)
// Format the label of a cell
// Also set whether it is editable.
void
XFE_RDFTreeView::initCell(HT_Resource node, int row, int column)
{
XFE_ColumnData *column_data = getColumnData(column);
XP_ASSERT(column_data);
if (!column_data) return;
// Set editing behavior
//
Boolean is_editable = False;
if (isStandAlone())
{
is_editable = HT_IsNodeDataEditable(node, column_data->token,
column_data->token_type);
}
// Set the label.
//
XmString xmstr = NULL;
int16 charset = INTL_DefaultWinCharSetID(m_contextData);
if (column == 0)
{
xmstr = XFE_RDFUtils::formatItem(node, charset);
}
else
{
void *data;
if (HT_GetNodeData(node, column_data->token, column_data->token_type,
&data) && data)
{
char buffer[1024];
switch (column_data->token_type)
{
time_t dateVal;
struct tm* time;
char buffer[200];
switch (column_data->token_type)
{
case HT_COLUMN_DATE_INT:
case HT_COLUMN_INT:
sprintf(buffer,"%d",(int)data);
break;
case HT_COLUMN_DATE_STRING:
case HT_COLUMN_STRING:
strcpy(buffer, (char*)data);
break;
}
XmLGridSetStringsPos(_tree,
XmCONTENT, row,
XmCONTENT, ii,
buffer);
case HT_COLUMN_DATE_INT:
case HT_COLUMN_INT:
sprintf(buffer,"%d",(int)data);
break;
case HT_COLUMN_DATE_STRING:
case HT_COLUMN_STRING:
strcpy(buffer, (char*)data);
break;
}
XmFontList font_list;
xmstr = fe_ConvertToXmString ((unsigned char *) buffer, charset,
NULL, XmFONT_IS_FONT, &font_list);
}
}
XtVaSetValues(_tree,
XmNrow, row,
XmNcolumn, column,
XmNcellString, xmstr,
XmNcellEditable, is_editable,
NULL);
if (xmstr)
XmStringFree(xmstr);
}
void

View File

@ -124,6 +124,9 @@ private:
void init_pixmaps();
// Set editing behavior and label.
void initCell(HT_Resource node, int row, int column);
void fill_tree();
void destroy_tree();

View File

@ -299,14 +299,16 @@ XFE_RDFUtils::entryToXmString(HT_Resource entry,
XmString tmp;
char * psz;
tmp = XFE_RDFUtils::formatItem(entry,INTL_DefaultWinCharSetID(NULL));
int16 charset = INTL_GetCSIWinCSID(char_set_info);
tmp = XFE_RDFUtils::formatItem(entry,charset);
// Mid truncate the name
if (XmStringGetLtoR(tmp,XmSTRING_DEFAULT_CHARSET,&psz))
{
XmStringFree(tmp);
INTL_MidTruncateString(INTL_GetCSIWinCSID(char_set_info),psz,psz,40);
INTL_MidTruncateString(charset, psz, psz, 40);
result = XmStringCreateLtoR(psz,XmSTRING_DEFAULT_CHARSET);
@ -324,7 +326,7 @@ XFE_RDFUtils::entryToXmString(HT_Resource entry,
}
//////////////////////////////////////////////////////////////////////////
/* static */ XmString
XFE_RDFUtils::formatItem(HT_Resource entry,int16 charset)
XFE_RDFUtils::formatItem(HT_Resource entry, int16 charset)
{
XmString xmstring;
char buf [1024];