зеркало из 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
|
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_
|
||||||
|
|
Загрузка…
Ссылка в новой задаче