1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-17 15:46:05 +02:00

Initial checkin

This commit is contained in:
Brian Fiete 2019-08-23 11:56:54 -07:00
parent c74712dad9
commit 078564ac9e
3242 changed files with 1616395 additions and 0 deletions

View file

@ -0,0 +1,162 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Beefy.theme.dark;
using Beefy.widgets;
namespace IDE.ui
{
/*public class VirtualListViewItem : DarkListViewItem
{
public VirtualListViewItem mVirtualHeadItem;
public int32 mVirtualCount; // Including head item
public int32 mVirtualIdx;
public bool mDisabled = false;
public this(VirtualListView listView)
: base(listView)
{
}
public override void Update()
{
base.Update();
if (mParentItem == null)
return;
var virtualListView = (VirtualListView)mListView;
if (mParentItem.mChildAreaHeight != 0)
{
float itemHeight = virtualListView.mFont.GetLineSpacing();
if (mVirtualHeadItem == this)
{
/*float ofsX;
float ofsY;
mParent.SelfToOtherTranslate(mListView, 0, 0, out ofsX, out ofsY);*/
float ofsX;
float ofsY;
mParent.SelfToOtherTranslate(mListView, 0, 0, out ofsX, out ofsY);
ofsY -= mListView.mVertPos.mDest + mListView.mScrollContent.mY;
int32 curMemberIdx = 0;
VirtualListViewItem prevVirtualListViewItem = null;
VirtualListViewItem nextVirtualListViewItem = (VirtualListViewItem)mParentItem.mChildItems[curMemberIdx];
int32 showCount = mVirtualCount;
float curY = mY;
float prevY = curY;
float lastBottomPadding = 0;
for (int32 idx = 0; idx < showCount; idx++)
{
VirtualListViewItem curVirtualListViewItem = null;
if ((nextVirtualListViewItem != null) && (idx == nextVirtualListViewItem.mVirtualIdx))
{
curVirtualListViewItem = nextVirtualListViewItem;
curMemberIdx++;
if (curMemberIdx < mParentItem.mChildItems.Count)
{
nextVirtualListViewItem = (VirtualListViewItem)mParentItem.mChildItems[curMemberIdx];
if (nextVirtualListViewItem.mVirtualHeadItem != this)
nextVirtualListViewItem = null;
if (nextVirtualListViewItem != null)
lastBottomPadding = nextVirtualListViewItem.mBottomPadding;
}
else
nextVirtualListViewItem = null;
}
bool wantsFillIn = (curY + ofsY + itemHeight >= 0) && (curY + ofsY < mListView.mHeight);
bool wantsDelete = !wantsFillIn;
if (mDisabled)
{
wantsFillIn = false;
wantsDelete = false;
}
/*bool wantsFillIn = (Utils.Rand() % 1000) == 0;
bool wantsDelete = (Utils.Rand() % 1000) == 0;*/
if ((curVirtualListViewItem == null) && (wantsFillIn))
{
prevVirtualListViewItem.mBottomPadding = (curY - prevVirtualListViewItem.mY) - prevVirtualListViewItem.mSelfHeight - prevVirtualListViewItem.mChildAreaHeight;
curVirtualListViewItem = (VirtualListViewItem)mParentItem.CreateChildItemAtIndex(curMemberIdx);
curVirtualListViewItem.mVisible = false;
curVirtualListViewItem.mX = mX;
curVirtualListViewItem.mVirtualHeadItem = this;
curVirtualListViewItem.mVirtualIdx = idx;
virtualListView.PopulateVirtualItem(curVirtualListViewItem);
curMemberIdx++;
}
if ((wantsDelete) && (idx != 0) && (curVirtualListViewItem != null) && (curVirtualListViewItem.mChildAreaHeight == 0))
{
curMemberIdx--;
mParentItem.RemoveChildItem(curVirtualListViewItem);
curVirtualListViewItem = null;
}
if (prevVirtualListViewItem != null)
{
if (mDisabled)
prevVirtualListViewItem.mBottomPadding = 0;
else
prevVirtualListViewItem.mBottomPadding = (curY - prevY) - prevVirtualListViewItem.mSelfHeight - prevVirtualListViewItem.mChildAreaHeight;
}
if (curVirtualListViewItem != null)
prevY = curY;
curY += itemHeight;
if (curVirtualListViewItem != null)
{
curY += curVirtualListViewItem.mChildAreaHeight;
prevVirtualListViewItem = curVirtualListViewItem;
}
}
if (prevVirtualListViewItem != null)
{
if (mDisabled)
prevVirtualListViewItem.mBottomPadding = 0;
else
prevVirtualListViewItem.mBottomPadding = (curY - prevY) - prevVirtualListViewItem.mSelfHeight - prevVirtualListViewItem.mChildAreaHeight;
if (prevVirtualListViewItem.mBottomPadding != lastBottomPadding)
mListView.mListSizeDirty = true;
}
while (curMemberIdx < mParentItem.mChildItems.Count)
{
var curVirtualListViewItem = (VirtualListViewItem)mParentItem.mChildItems[curMemberIdx];
if (curVirtualListViewItem.mVirtualHeadItem != this)
break;
mParentItem.RemoveChildItem(curVirtualListViewItem);
if (mParentItem == null) // Last item
return;
}
}
}
}
}
public class VirtualListView : IDEListView
{
protected override ListViewItem CreateListViewItem()
{
var anItem = new VirtualListViewItem(this);
return anItem;
}
public virtual void PopulateVirtualItem(VirtualListViewItem item)
{
}
}*/
}