{
DataRow row;
PropertyInfo info { prop, disabled, bold ? codeEditor.boldFont : codeEditor.normalFont };
- char * name = prop.category ? prop.category : $"Misc";
+ const char * name = prop.category ? prop.category : $"Misc";
Category category = categories.FindName(name, false);
// Hide properties like this for now..
if(_class.defaultProperty && !strcmp(prop.name, _class.defaultProperty))
{
DataRow row;
- char * name = prop.category ? prop.category : $"Misc";
+ const char * name = prop.category ? prop.category : $"Misc";
Category category = categories.FindName(name, false);
row = category ? (categorized ? category.row.FindRow((int64)prop) : properties.FindRow((int64)prop)) : null;
properties.currentRow = row;
}
}
- void AddObject(ObjectInfo object, char * name, CodeObjectType type, bool select)
+ void AddObject(ObjectInfo object, const char * name, CodeObjectType type, bool select)
{
DataRow after = null;
DataRow row;
}
}
- void RenameObject(ObjectInfo object, char * name)
+ void RenameObject(ObjectInfo object, const char * name)
{
DataRow row = dropBox.FindRow((int64)object);
CodeObject codeObject = row.GetData(null);
int selectedScroll;
}
-static int String_OnCompare(char ** string1, char ** string2)
+static int String_OnCompare(const char ** string1, const char ** string2)
{
int result = 0;
if(*string1 && *string2)
Property prop;
bool disabled;
FontResource font;
- char * categoryName;
+ const char * categoryName;
DataMember subMember;
Property subProperty;
uint extraOffset;
void * dataPtr, * data = null, * subData = null;
DataValue valueData, valueSubData;
uint64 bitValue;
+ bool isEditBoxMultiLineContents = false;
// Get main prop
if(dataType.type == structClass)
}
else
{
- GetProperty(prop, object, &valueData);
+ bool freeDataForm = false, freeDataTest = false;
+ // Because contents property is broken for mutiline EditBox at the moment
+ if(!strcmp(prop.name, "contents") && !strcmp(prop._class.name, "EditBox") && ((EditBox)object).multiLine)
+ {
+ isEditBoxMultiLineContents = true;
+ dataType = eSystem_FindClass(((Designer)GetActiveDesigner()).codeEditor.privateModule, "MultiLineString");
+ valueData.p = ((EditBox)object).multiLineContents;
+ dataBox.size.h = 3*(h-2);
+ h = dataBox.clientSize.h;
+ }
+ else
+ GetProperty(prop, object, &valueData);
+
if(dataType.type == normalClass)
dataPtr = valueData.p;
else
delete data;
delete subData;
+ if(isEditBoxMultiLineContents)
+ delete valueData.p;
+
editData.font = { font.faceName, font.size, font.bold };
if(eClass_IsDerived(editData._class, class(DropBox)))
{
int OnCompare(PropertyInfo data2)
{
- char * category1 = prop ? prop.category : categoryName;
- char * category2 = data2.prop ? data2.prop.category : data2.categoryName;
+ const char * category1 = prop ? prop.category : categoryName;
+ const char * category2 = data2.prop ? data2.prop.category : data2.categoryName;
int result;
if(!category1) category1 = $"Misc";
if(!prop)
{
- // result = String::OnCompare((String)category1, (String)category2);
result = String_OnCompare(&category1, &category2);
}
else
else
// result = ((String)prop.name).OnCompare(data2.prop.name);
// result = String::OnCompare((String)prop.name, (String)data2.prop.name);
- result = String_OnCompare(&prop.name, &data2.prop.name);
+ result = String_OnCompare((const char **)&prop.name, (const char **)&data2.prop.name);
}
return result;
}
mainDataType = prop.dataTypeClass = eSystem_FindClass(((Designer)GetActiveDesigner()).codeEditor.privateModule, prop.dataTypeString);
dataType = mainDataType;
+ // Because contents property is broken for mutiline EditBox at the moment
+ if(!strcmp(prop.name, "contents") && !strcmp(prop._class.name, "EditBox") && ((EditBox)object).multiLine)
+ dataType = eSystem_FindClass(((Designer)GetActiveDesigner()).codeEditor.privateModule, "MultiLineString");
+
// Prepare main prop
if(dataType.type == structClass)
{
class Category : struct
{
Category prev, next;
- char * name;
+ const char * name;
DataRow row;
bool collapsed;
};