зеркало из https://github.com/mozilla/gecko-dev.git
Move XmString utilities to XFE_RDFUtils.
This commit is contained in:
Родитель
6e72ccccf2
Коммит
5910259f0e
|
@ -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
|
||||
XFE_RDFMenuToolbarBase::setItemLabelString(Widget item,HT_Resource entry)
|
||||
{
|
||||
|
@ -1188,8 +1101,7 @@ XFE_RDFMenuToolbarBase::setItemLabelString(Widget item,HT_Resource entry)
|
|||
LO_GetDocumentCharacterSetInfo(context);
|
||||
|
||||
// Create am XmString from the entry
|
||||
XmString xmname =
|
||||
XFE_RDFMenuToolbarBase::entryToXmString(entry, charSetInfo);
|
||||
XmString xmname = XFE_RDFUtils::entryToXmString(entry, charSetInfo);
|
||||
|
||||
if (xmname != NULL)
|
||||
{
|
||||
|
@ -1213,8 +1125,7 @@ XFE_RDFMenuToolbarBase::getStringFromResource(HT_Resource entry)
|
|||
LO_GetDocumentCharacterSetInfo(context);
|
||||
|
||||
// Create am XmString from the entry
|
||||
xmname =
|
||||
XFE_RDFMenuToolbarBase::entryToXmString(entry, charSetInfo);
|
||||
xmname = XFE_RDFUtils::entryToXmString(entry, charSetInfo);
|
||||
|
||||
return(xmname);
|
||||
|
||||
|
|
|
@ -169,14 +169,6 @@ private:
|
|||
char * _dropTitleBuffer; //
|
||||
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 ();
|
||||
|
||||
Widget getLastMoreMenu (Widget menu);
|
||||
|
|
|
@ -30,6 +30,11 @@
|
|||
#include "xp_str.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
|
||||
|
@ -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 "Command.h"
|
||||
|
||||
#include <Xm/Xm.h> // For XmString
|
||||
|
||||
class XFE_RDFUtils
|
||||
{
|
||||
public:
|
||||
|
@ -78,6 +80,21 @@ public:
|
|||
char ** resolvedTitleOut,
|
||||
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_
|
||||
|
|
Загрузка…
Ссылка в новой задаче