Move XmString utilities to XFE_RDFUtils.

This commit is contained in:
ramiro%netscape.com 1998-10-12 14:19:37 +00:00
Родитель 6e72ccccf2
Коммит 5910259f0e
4 изменённых файлов: 114 добавлений и 99 удалений

Просмотреть файл

@ -1087,93 +1087,6 @@ XFE_RDFMenuToolbarBase::getDropLastAccess()
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/* static */ XmString
XFE_RDFMenuToolbarBase::entryToXmString(HT_Resource entry,
INTL_CharSetInfo char_set_info)
{
XP_ASSERT( entry != NULL );
XmString result = NULL;
XmString tmp;
char * psz;
tmp = XFE_RDFMenuToolbarBase::formatItem(entry,
INTL_DefaultWinCharSetID(NULL));
// Mid truncate the name
if (XmStringGetLtoR(tmp,XmSTRING_DEFAULT_CHARSET,&psz))
{
XmStringFree(tmp);
INTL_MidTruncateString(INTL_GetCSIWinCSID(char_set_info),psz,psz,40);
result = XmStringCreateLtoR(psz,XmSTRING_DEFAULT_CHARSET);
if (psz)
{
XtFree(psz);
}
}
else
{
result = tmp;
}
return result;
}
//////////////////////////////////////////////////////////////////////////
/* static */ XmString
XFE_RDFMenuToolbarBase::formatItem(HT_Resource entry,
int16 charset)
{
XmString xmstring;
char buf [1024];
char *name = HT_GetNodeName(entry);
char *url = HT_GetNodeURL(entry);
XmFontList font_list;
if (HT_IsSeparator(entry))
{
strcpy (buf, "-------------------------");
}
else if (name || url)
{
fe_FormatDocTitle (name, url, buf, 1024);
}
if (!*buf)
{
xmstring = 0;
}
else if (name || url)
{
xmstring = fe_ConvertToXmString ((unsigned char *) buf, charset,
NULL, XmFONT_IS_FONT, &font_list);
}
else
{
char *loc;
loc = (char *) fe_ConvertToLocaleEncoding (charset,
(unsigned char *) buf);
xmstring = XmStringSegmentCreate (loc, "HEADING",
XmSTRING_DIRECTION_L_TO_R, False);
if (loc != buf)
{
XP_FREE(loc);
}
}
if (!xmstring)
{
xmstring = XmStringCreateLtoR ("", XmFONTLIST_DEFAULT_TAG);
}
return (xmstring);
}
//////////////////////////////////////////////////////////////////////////
void void
XFE_RDFMenuToolbarBase::setItemLabelString(Widget item,HT_Resource entry) XFE_RDFMenuToolbarBase::setItemLabelString(Widget item,HT_Resource entry)
{ {
@ -1188,8 +1101,7 @@ XFE_RDFMenuToolbarBase::setItemLabelString(Widget item,HT_Resource entry)
LO_GetDocumentCharacterSetInfo(context); LO_GetDocumentCharacterSetInfo(context);
// Create am XmString from the entry // Create am XmString from the entry
XmString xmname = XmString xmname = XFE_RDFUtils::entryToXmString(entry, charSetInfo);
XFE_RDFMenuToolbarBase::entryToXmString(entry, charSetInfo);
if (xmname != NULL) if (xmname != NULL)
{ {
@ -1213,8 +1125,7 @@ XFE_RDFMenuToolbarBase::getStringFromResource(HT_Resource entry)
LO_GetDocumentCharacterSetInfo(context); LO_GetDocumentCharacterSetInfo(context);
// Create am XmString from the entry // Create am XmString from the entry
xmname = xmname = XFE_RDFUtils::entryToXmString(entry, charSetInfo);
XFE_RDFMenuToolbarBase::entryToXmString(entry, charSetInfo);
return(xmname); return(xmname);

Просмотреть файл

@ -169,14 +169,6 @@ private:
char * _dropTitleBuffer; // char * _dropTitleBuffer; //
time_t _dropLastAccess; // time_t _dropLastAccess; //
// Format item blah blah blah
static XmString formatItem (HT_Resource entry,
int16 charset);
// Obtain an internationallized XmString from an entry
static XmString entryToXmString (HT_Resource entry,
INTL_CharSetInfo char_set_info);
void createPixmaps (); void createPixmaps ();
Widget getLastMoreMenu (Widget menu); Widget getLastMoreMenu (Widget menu);

Просмотреть файл

@ -30,6 +30,11 @@
#include "xp_str.h" #include "xp_str.h"
#include "xpassert.h" #include "xpassert.h"
#include "felocale.h" // fe_ConvertToXmString()
#include "intl_csi.h" // For INTL_ functions
#include "xfe.h" // For fe_FormatDocTitle()
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// //
// XFE Command utilities // XFE Command utilities
@ -274,3 +279,93 @@ XFE_RDFUtils::guessTitle(MWContext * context,
} }
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//
// XmString hackery
//
//////////////////////////////////////////////////////////////////////////
/* static */ XmString
XFE_RDFUtils::entryToXmString(HT_Resource entry,
INTL_CharSetInfo char_set_info)
{
XP_ASSERT( entry != NULL );
XmString result = NULL;
XmString tmp;
char * psz;
tmp = XFE_RDFUtils::formatItem(entry,INTL_DefaultWinCharSetID(NULL));
// Mid truncate the name
if (XmStringGetLtoR(tmp,XmSTRING_DEFAULT_CHARSET,&psz))
{
XmStringFree(tmp);
INTL_MidTruncateString(INTL_GetCSIWinCSID(char_set_info),psz,psz,40);
result = XmStringCreateLtoR(psz,XmSTRING_DEFAULT_CHARSET);
if (psz)
{
XtFree(psz);
}
}
else
{
result = tmp;
}
return result;
}
//////////////////////////////////////////////////////////////////////////
/* static */ XmString
XFE_RDFUtils::formatItem(HT_Resource entry,int16 charset)
{
XmString xmstring;
char buf [1024];
char *name = HT_GetNodeName(entry);
char *url = HT_GetNodeURL(entry);
XmFontList font_list;
if (HT_IsSeparator(entry))
{
strcpy (buf, "-------------------------");
}
else if (name || url)
{
fe_FormatDocTitle (name, url, buf, 1024);
}
if (!*buf)
{
xmstring = 0;
}
else if (name || url)
{
xmstring = fe_ConvertToXmString ((unsigned char *) buf, charset,
NULL, XmFONT_IS_FONT, &font_list);
}
else
{
char *loc;
loc = (char *) fe_ConvertToLocaleEncoding (charset,
(unsigned char *) buf);
xmstring = XmStringSegmentCreate (loc, "HEADING",
XmSTRING_DIRECTION_L_TO_R, False);
if (loc != buf)
{
XP_FREE(loc);
}
}
if (!xmstring)
{
xmstring = XmStringCreateLtoR ("", XmFONTLIST_DEFAULT_TAG);
}
return (xmstring);
}
//////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -33,6 +33,8 @@
#include "xp_core.h" #include "xp_core.h"
#include "Command.h" #include "Command.h"
#include <Xm/Xm.h> // For XmString
class XFE_RDFUtils class XFE_RDFUtils
{ {
public: public:
@ -78,6 +80,21 @@ public:
char ** resolvedTitleOut, char ** resolvedTitleOut,
time_t * resolvedLastDateOut); time_t * resolvedLastDateOut);
//////////////////////////////////////////////////////////////////////
// //
// XmString hackery //
// //
//////////////////////////////////////////////////////////////////////
// Format item blah blah blah
static XmString formatItem (HT_Resource entry,
int16 charset);
// Obtain an internationallized XmString from an entry
static XmString entryToXmString (HT_Resource entry,
INTL_CharSetInfo char_set_info);
}; };
#endif // _xfe_rdf_utils_h_ #endif // _xfe_rdf_utils_h_