{
if(type._class.registered)
{
- char hex[10];
- sprintf(hex, "%08x", type._class.registered);
+ char hex[20];
+ sprintf(hex, "%p", type._class.registered);
strcat(string, "<a href=\"api://");
strcat(string, hex);
strcat(string, "\" style=\"text-decoration: none;\">");
{
f.Printf("<FONT FACE=\"Arial\" SIZE=\"6\">%s</FONT><br><br>\n", nsName );
tag = (uint)nameSpace;
- f.Printf($"Module: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n", (module && module.name) ? module : null, (!module || !module.name || !strcmp(nsName, "ecere::com")) ? "ecereCOM" : module.name);
+ f.Printf($"Module: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", (module && module.name) ? module : null, (!module || !module.name || !strcmp(nsName, "ecere::com")) ? "ecereCOM" : module.name);
}
else
{
ns = ns->parent;
}
if(nsName[0])
- f.Printf($"Parent namespace: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n", nameSpace->parent, nsName);
+ f.Printf($"Parent namespace: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", nameSpace->parent, nsName);
f.Printf("<br>");
{
first = false;
}
f.Printf("<TR>");
- f.Printf("<TD valign=top height=22 nowrap=1><img valign=center src=\"%s\"> <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a></TD>", iconNames[typeNameSpace], ns, ns->name);
+ f.Printf("<TD valign=top height=22 nowrap=1><img valign=center src=\"%s\"> <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a></TD>", iconNames[typeNameSpace], ns, ns->name);
if(desc)
{
if(editing)
f.Printf("<TR>");
- f.Printf("<TD valign=top height=22 nowrap=1><img valign=center src=\"%s\"> <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a></TD>", (cl.type == enumClass || cl.type == unitClass || cl.type == systemClass) ? iconNames[typeDataType] : iconNames[typeClass], cl, cl.name);
+ f.Printf("<TD valign=top height=22 nowrap=1><img valign=center src=\"%s\"> <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a></TD>", (cl.type == enumClass || cl.type == unitClass || cl.type == systemClass) ? iconNames[typeDataType] : iconNames[typeClass], cl, cl.name);
if(desc)
{
if(editing)
if(name) name += 2; else name = function.name;
if(first)
{
- f.Printf("<a name=Functions></a><H3>Functions</H3><br><br>\n");
+ f.Printf($"<a name=Functions></a><H3>Functions</H3><br><br>\n");
f.Printf("<TABLE >\n");
first = false;
}
f.Printf("<TR>");
- f.Printf("<TD valign=top height=22 nowrap=1><img valign=center src=\"%s\"> <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a></TD>", iconNames[typeMethod], function, name);
+ f.Printf("<TD valign=top height=22 nowrap=1><img valign=center src=\"%s\"> <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a></TD>", iconNames[typeMethod], function, name);
if(desc)
{
if(editing)
first = false;
}
f.Printf("<TR>");
- f.Printf("<TD valign=top height=22 nowrap=1><a name=%08x></a><img valign=center src=\"%s\"> %s</TD>", def, iconNames[typeData], def.name);
+ f.Printf("<TD valign=top height=22 nowrap=1><a name=%p></a><img valign=center src=\"%s\"> %s</TD>", def, iconNames[typeData], def.name);
f.Printf("<TD valign=top height=22>%s</TD>", def.value);
if(desc)
{
f.Printf($"<HTML><HEAD><TITLE>API Reference</TITLE></HEAD>\n<BODY><FONT SIZE=\"3\">\n");
f.Printf("<FONT FACE=\"Arial\" SIZE=\"6\">%s</FONT><br><br>\n", name);
- f.Printf($"Module: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n", (module && module.name) ? module : null, (!module || !module.name || !strcmp(nsName, "ecere::com")) ? "ecereCOM" : module.name);
+ f.Printf($"Module: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", (module && module.name) ? module : null, (!module || !module.name || !strcmp(nsName, "ecere::com")) ? "ecereCOM" : module.name);
if(nsName[0])
- f.Printf($"Namespace: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n", cl.nameSpace, nsName);
+ f.Printf($"Namespace: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", cl.nameSpace, nsName);
{
char * classType = null;
else if(cl.type == enumClass && !strcmp(cl.base.name, "enum"))
f.Printf("%s", cl.dataTypeString);
else
- f.Printf("<a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a>", cl.base, cl.base.name);
+ f.Printf("<a href=\"api://%p\" style=\"text-decoration: none;\">%s</a>", cl.base.templateClass ? cl.base.templateClass : cl.base, cl.base.name);
f.Printf("<br>\n");
}
bool needClass = true;
Class dataClass;
Class base = cl;
+ char tempString[1024];
+ String s;
while(base.type == enumClass) base = base.base;
if(base.type == systemClass ||
dataClass = base;
f.Printf("<TR>");
- f.Printf("<TD valign=top height=22 nowrap=1><a name=%08x></a><img valign=center src=\"%s\"> %s</TD>", item, iconNames[typeEnumValue], item.name);
+ f.Printf("<TD valign=top height=22 nowrap=1><a name=%p></a><img valign=center src=\"%s\"> %s</TD>", item, iconNames[typeEnumValue], item.name);
if(dataClass.type == systemClass)
{
needClass = false;
- dataClass._vTbl[__ecereVMethodID_class_OnGetString](dataClass, &item.data, string, sizeof(string), &needClass);
+ s = ((char *(*)(void *, void *, char *, void *, bool *))(void *)dataClass._vTbl[__ecereVMethodID_class_OnGetString])(dataClass, &item.data, tempString, null, &needClass);
}
else
- eSystem_FindClass(componentsApp, "class")._vTbl[__ecereVMethodID_class_OnGetString](dataClass, &item.data, string, sizeof(string), &needClass);
+ s = ((char *(*)(void *, void *, char *, void *, bool *))(void *)eSystem_FindClass(componentsApp, "class")._vTbl[__ecereVMethodID_class_OnGetString])(dataClass, &item.data, tempString, null, &needClass);
if(needClass)
- f.Printf("<TD valign=top height=22 nowrap=1>%s { %s }</TD>", dataClass.name, string);
+ f.Printf("<TD valign=top height=22 nowrap=1>%s { %s }</TD>", dataClass.name, s);
else
- f.Printf("<TD valign=top height=22 nowrap=1>%s</TD>", string);
+ f.Printf("<TD valign=top height=22 nowrap=1>%s</TD>", s);
if(desc)
{
if(editing)
string[0] = 0;
DocPrintType(type, string, true, false);
- f.Printf("<TD valign=top height=22 nowrap=1><a name=%08x></a><img valign=center src=\"%s\"> %s</TD>", prop, iconNames[typeDataType], string);
+ f.Printf("<TD valign=top height=22 nowrap=1><a name=%p></a><img valign=center src=\"%s\"> %s</TD>", prop, iconNames[typeDataType], string);
if(desc)
{
if(editing)
string[0] = 0;
DocPrintType(prop.dataType, string, true, false);
- f.Printf("<TD valign=top height=22 nowrap=1><a name=%08x></a><img valign=center src=\"%s\"> %s</TD>", prop, iconNames[typeProperty], prop.name);
+ f.Printf("<TD valign=top height=22 nowrap=1><a name=%p></a><img valign=center src=\"%s\"> %s</TD>", prop, iconNames[typeProperty], prop.name);
f.Printf("<TD valign=top height=22 nowrap=1>%s</TD>", string);
if(desc)
{
ProcessMethodType(method);
f.Printf("<TR>");
- f.Printf("<TD valign=top height=22 nowrap=1><img valign=center src=\"%s\"> <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a></TD>", method.dataType.thisClass ? iconNames[typeEvent] : iconNames[typeMethod], method, method.name);
+ f.Printf("<TD valign=top height=22 nowrap=1><img valign=center src=\"%s\"> <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a></TD>", method.dataType.thisClass ? iconNames[typeEvent] : iconNames[typeMethod], method, method.name);
if(desc)
{
if(editing)
ProcessMethodType(method);
f.Printf("<TR>");
- f.Printf("<TD valign=top height=22 nowrap=1><img valign=center src=\"%s\"> <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a></TD>", iconNames[typeMethod], method, method.name);
+ f.Printf("<TD valign=top height=22 nowrap=1><img valign=center src=\"%s\"> <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a></TD>", iconNames[typeMethod], method, method.name);
if(desc)
{
if(editing)
if(exampleDoc)
{
f.Printf($"<H3>Example</H3><br>\n");
- f.Printf("<FONT face=\"Courier New\">\n");
+ f.Printf($"<FONT face=\"Courier New\">\n");
f.Printf("<br><TABLE >\n");
if(editing)
{
}
else
f.Printf(", ");
- f.Printf("<a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a>", deriv, deriv.name);
+ f.Printf("<a href=\"api://%p\" style=\"text-decoration: none;\">%s</a>", deriv, deriv.name);
}
}
if(!first)
f.Printf($"<HTML><HEAD><TITLE>API Reference</TITLE></HEAD>\n<BODY><FONT SIZE=\"3\">\n");
f.Printf("<FONT FACE=\"Arial\" SIZE=\"6\">%s</FONT><br><br>\n", name);
- f.Printf($"Module: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n", (module && module.name) ? module : null, (!module || !module.name || !strcmp(nsName, "ecere::com")) ? "ecereCOM" : module.name);
+ f.Printf($"Module: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", (module && module.name) ? module : null, (!module || !module.name || !strcmp(nsName, "ecere::com")) ? "ecereCOM" : module.name);
if(nsName[0])
- f.Printf($"Namespace: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n", cl.nameSpace, nsName);
- f.Printf("Class: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n", cl, cl.name);
+ f.Printf($"Namespace: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", cl.nameSpace, nsName);
+ f.Printf("Class: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", cl, cl.name);
if(method.dataType.staticMethod)
{
f.Printf($"this pointer class: None<br>\n");
}
else if(method.dataType.thisClass && method.dataType.thisClass.registered && (method.dataType.thisClass.registered != method._class || method.type == virtualMethod))
{
- f.Printf($"this pointer class: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n", method.dataType.thisClass.registered, method.dataType.thisClass.registered.name);
+ f.Printf($"this pointer class: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", method.dataType.thisClass.registered, method.dataType.thisClass.registered.name);
}
// Generate Method Page
if(exampleDoc)
{
f.Printf($"<H3>Example</H3><br>\n");
- f.Printf("<FONT face=\"Courier New\">\n");
+ f.Printf($"<FONT face=\"Courier New\">\n");
f.Printf("<br><TABLE >\n");
if(editing)
{
f.Printf($"<HTML><HEAD><TITLE>API Reference</TITLE></HEAD>\n<BODY><FONT SIZE=\"3\">\n");
f.Printf("<FONT FACE=\"Arial\" SIZE=\"6\">%s</FONT><br><br>\n", name);
- f.Printf($"Module: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n"), (module && module.name) ? module : null, (!module || !module.name || !strcmp(nsName, "ecere::com") ? "ecereCOM" : module.name);
+ f.Printf($"Module: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", (module && module.name) ? module : null, (!module || !module.name || !strcmp(nsName, "ecere::com")) ? "ecereCOM" : module.name);
+
if(nsName[0])
- f.Printf($"Namespace: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n", function.nameSpace, nsName);
+ f.Printf($"Namespace: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", function.nameSpace, nsName);
if(!function.dataType)
function.dataType = ProcessTypeString(function.dataTypeString, false);
if(function.dataType.thisClass && function.dataType.thisClass.registered)
{
- f.Printf($"this pointer class: <a href=\"api://%08x\" style=\"text-decoration: none;\">%s</a><br>\n", function.dataType.thisClass.registered, function.dataType.thisClass.registered.name);
+ f.Printf($"this pointer class: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", function.dataType.thisClass.registered, function.dataType.thisClass.registered.name);
}
// Generate Method Page
if(exampleDoc)
{
f.Printf($"<H3>Example</H3><br>\n");
- f.Printf("<FONT face=\"Courier New\">\n");
+ f.Printf($"<FONT face=\"Courier New\">\n");
f.Printf("<br><TABLE >\n");
if(editing)
{
string[0] = 0;
DocPrintType(member.dataType, string, true, false);
- f.Printf("<TD valign=top height=22 nowrap=1><a name=%08x></a>", member);
+ f.Printf("<TD valign=top height=22 nowrap=1><a name=%p></a>", member);
for(c = 0; c<indent; c++)
f.Printf(" ");
f.Printf("<img valign=center src=\"%s\"> %s</TD>", iconNames[typeData], member.name ? member.name : ((member.type == structMember) ? "(struct)" : "(union)"));
borderStyle = sizable;
hasMaximize = true;
hasMinimize = true;
+ nativeDecorations = true;
+ icon = { ":documentorIcon.png" };
text = $"API Documentation Browser";
BitmapResource icons[CodeObjectType];
bool NotifySelect(MenuItem selection, Modifiers mods)
{
SettingsDialog { master = this }.Modal(); // Open the settings dialog to allow the user to change the directory for the eCdoc files
+ return true;
}
};
MenuDivider { fileMenu };
case 8: view.GoToAnchor("EnumerationValues"); break;
default:
{
- char hex[10];
- sprintf(hex, "%08x", row.tag);
+ char hex[20];
+ sprintf(hex, "%p", row.tag);
view.GoToAnchor(hex);
}
}
{
if(!strncmp(href, "api://", 6))
{
- int tag = strtoul(href + 6, null, 16);
+ int tag = (uint)strtoul(href + 6, null, 16);
DataRow row = mainForm.browser.FindSubRow(tag);
if(row)
{
default:
{
// eC BUG HERE: (Should be fixed)
- if(key.ctrl && !key.alt && ch >= 32 && ch != 128 /*&& ch < 128*/)
+ if(!key.ctrl && !key.alt && ch >= 32 && ch != 128 /*&& ch < 128*/)
{
char string[5];
int len = UTF32toUTF8Len(&ch, 1, string, 5);