1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

Merge pull request #2114 from MineBill/expose-more-colors

Remove some hardcoded colors to make the IDE more friendly to light themes.
This commit is contained in:
Brian Fiete 2025-01-29 11:27:47 -08:00 committed by GitHub
commit 852d29d770
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 82 additions and 44 deletions

View file

@ -121,6 +121,7 @@ namespace Beefy.theme.dark
{ {
g.SetFont(mFont); g.SetFont(mFont);
using(g.PushColor(DarkTheme.COLOR_TEXT))
DarkTheme.DrawUnderlined(g, mLabel, GS!(22), GS!(-1)); DarkTheme.DrawUnderlined(g, mLabel, GS!(22), GS!(-1));
/*int underlinePos = mLabel.IndexOf('&'); /*int underlinePos = mLabel.IndexOf('&');

View file

@ -119,6 +119,7 @@ namespace Beefy.theme.dark
g.SetFont(mFont); g.SetFont(mFont);
if (mText != null) if (mText != null)
using (g.PushColor(DarkTheme.COLOR_TEXT))
g.DrawString(mText, mTextInsets.mLeft, mTextInsets.mTop, FontAlign.Left, mWidth - mTextInsets.Horz, FontOverflowMode.Wrap); g.DrawString(mText, mTextInsets.mLeft, mTextInsets.mTop, FontAlign.Left, mWidth - mTextInsets.Horz, FontOverflowMode.Wrap);
} }
} }

View file

@ -79,6 +79,8 @@ namespace Beefy.theme.dark
mHeight = GS!(24); mHeight = GS!(24);
mHorzJumpSize = GS!(40); mHorzJumpSize = GS!(40);
mFont = DarkTheme.sDarkTheme?.mSmallFont; mFont = DarkTheme.sDarkTheme?.mSmallFont;
mTextColors[0] = DarkTheme.COLOR_TEXT;
mHiliteColor = DarkTheme.COLOR_TEXT_SELECTED;
} }
protected override EditWidgetContent.Data CreateEditData() protected override EditWidgetContent.Data CreateEditData()

View file

@ -32,7 +32,7 @@ namespace Beefy.theme.dark
let darkMenuWidget = (DarkMenuWidget)mMenuWidget; let darkMenuWidget = (DarkMenuWidget)mMenuWidget;
g.SetFont(mMenuItem.mBold ? darkMenuWidget.mBoldFont : darkMenuWidget.mFont); g.SetFont(mMenuItem.mBold ? darkMenuWidget.mBoldFont : darkMenuWidget.mFont);
using (g.PushColor(mMenuItem.mDisabled ? 0xFFA8A8A8 : 0xFFFFFFFF)) using (g.PushColor(mMenuItem.mDisabled ? DarkTheme.COLOR_TEXT_DISABLED : DarkTheme.COLOR_TEXT))
{ {
StringView leftStr = mMenuItem.mLabel; StringView leftStr = mMenuItem.mLabel;
StringView rightStr = default; StringView rightStr = default;
@ -43,13 +43,10 @@ namespace Beefy.theme.dark
leftStr.RemoveToEnd(barIdx); leftStr.RemoveToEnd(barIdx);
} }
using (g.PushColor(DarkTheme.COLOR_TEXT))
{
g.DrawString(leftStr, GS!(36), 0); g.DrawString(leftStr, GS!(36), 0);
if (!rightStr.IsEmpty) if (!rightStr.IsEmpty)
g.DrawString(rightStr, mWidth - GS!(8), 0, .Right); g.DrawString(rightStr, mWidth - GS!(8), 0, .Right);
} }
}
if (mMenuItem.mIconImage != null) if (mMenuItem.mIconImage != null)
g.Draw(mMenuItem.mIconImage, GS!(4), 0); g.Draw(mMenuItem.mIconImage, GS!(4), 0);
@ -57,7 +54,7 @@ namespace Beefy.theme.dark
if (mMenuItem.IsParent) if (mMenuItem.IsParent)
{ {
using (g.PushColor(mMenuItem.mDisabled ? 0xFFA8A8A8 : 0xFFFFFFFF)) using (g.PushColor(mMenuItem.mDisabled ? DarkTheme.COLOR_TEXT_DISABLED : DarkTheme.COLOR_TEXT))
g.Draw(DarkTheme.sDarkTheme.GetImage(DarkTheme.ImageIdx.RightArrow), mWidth - GS!(16), 0); g.Draw(DarkTheme.sDarkTheme.GetImage(DarkTheme.ImageIdx.RightArrow), mWidth - GS!(16), 0);
} }
} }

View file

@ -197,6 +197,8 @@ namespace Beefy.theme.dark
}; };
public static uint32 COLOR_TEXT = 0xFFFFFFFF; public static uint32 COLOR_TEXT = 0xFFFFFFFF;
public static uint32 COLOR_TEXT_DISABLED = 0xFFA8A8A8;
public static uint32 COLOR_TEXT_SELECTED = 0xFF2f5c88;
public static uint32 COLOR_WINDOW = 0xFF595962; public static uint32 COLOR_WINDOW = 0xFF595962;
public static uint32 COLOR_BKG = 0xFF26262A; public static uint32 COLOR_BKG = 0xFF26262A;
public static uint32 COLOR_SELECTED_OUTLINE = 0xFFCFAE11; public static uint32 COLOR_SELECTED_OUTLINE = 0xFFCFAE11;

View file

@ -6906,8 +6906,8 @@ namespace IDE
var editWidgetContent = (SourceEditWidgetContent)editWidget.Content; var editWidgetContent = (SourceEditWidgetContent)editWidget.Content;
//mEditWidget.mVertScrollbar.mScrollIncrement = editWidgetContent.mFont.GetLineSpacing(); //mEditWidget.mVertScrollbar.mScrollIncrement = editWidgetContent.mFont.GetLineSpacing();
editWidgetContent.mHiliteColor = 0xFF384858; editWidgetContent.mHiliteColor = mSettings.mUISettings.mColors.mCodeHighlight;
editWidgetContent.mUnfocusedHiliteColor = 0x80384858; editWidgetContent.mUnfocusedHiliteColor = mSettings.mUISettings.mColors.mCodeHighlightUnfocused;
editWidgetContent.mHiliteCurrentLine = mSettings.mEditorSettings.mHiliteCurrentLine; editWidgetContent.mHiliteCurrentLine = mSettings.mEditorSettings.mHiliteCurrentLine;
return editWidget; return editWidget;

View file

@ -311,6 +311,8 @@ namespace IDE
public class Colors public class Colors
{ {
public Color mText = 0xFFFFFFFF; public Color mText = 0xFFFFFFFF;
public Color mTextDisabled = 0xFFA8A8A8;
public Color mTextSelected = 0xFF2f5c88;
public Color mWindow = 0xFF44444D; public Color mWindow = 0xFF44444D;
public Color mBackground = 0xFF1C1C24; public Color mBackground = 0xFF1C1C24;
public Color mSelectedOutline = 0xFFCFAE11; public Color mSelectedOutline = 0xFFCFAE11;
@ -350,6 +352,8 @@ namespace IDE
public Color mCurrentLineHilite = 0xFF4C4C54; public Color mCurrentLineHilite = 0xFF4C4C54;
public Color mCurrentLineNumberHilite = 0x18FFFFFF; public Color mCurrentLineNumberHilite = 0x18FFFFFF;
public Color mCharPairHilite = 0x1DFFFFFF; public Color mCharPairHilite = 0x1DFFFFFF;
public Color mCodeHilite = 0xFF384858;
public Color mCodeHiliteUnfocused = 0x80384858;
public void Deserialize(StructuredData sd) public void Deserialize(StructuredData sd)
{ {
@ -362,6 +366,8 @@ namespace IDE
} }
GetColor("Text", ref mText); GetColor("Text", ref mText);
GetColor("TextDisabled", ref mTextDisabled);
GetColor("TextSelected", ref mTextSelected);
GetColor("Window", ref mWindow); GetColor("Window", ref mWindow);
GetColor("Background", ref mBackground); GetColor("Background", ref mBackground);
GetColor("SelectedOutline", ref mSelectedOutline); GetColor("SelectedOutline", ref mSelectedOutline);
@ -418,6 +424,8 @@ namespace IDE
GetColor("CurrentLineHilite", ref mCurrentLineHilite); GetColor("CurrentLineHilite", ref mCurrentLineHilite);
GetColor("CurrentLineNumberHilite", ref mCurrentLineNumberHilite); GetColor("CurrentLineNumberHilite", ref mCurrentLineNumberHilite);
GetColor("CharPairHilite", ref mCharPairHilite); GetColor("CharPairHilite", ref mCharPairHilite);
GetColor("CodeHilite", ref mCodeHilite);
GetColor("CodeHiliteUnfocused", ref mCodeHiliteUnfocused);
} }
public void Apply() public void Apply()
@ -446,6 +454,8 @@ namespace IDE
SourceEditWidgetContent.sTextColors[(.)SourceElementType.VisibleWhiteSpace] = mVisibleWhiteSpace; SourceEditWidgetContent.sTextColors[(.)SourceElementType.VisibleWhiteSpace] = mVisibleWhiteSpace;
DarkTheme.COLOR_TEXT = mText; DarkTheme.COLOR_TEXT = mText;
DarkTheme.COLOR_TEXT_DISABLED = mTextDisabled;
DarkTheme.COLOR_TEXT_SELECTED = mTextSelected;
DarkTheme.COLOR_WINDOW = mWindow; DarkTheme.COLOR_WINDOW = mWindow;
DarkTheme.COLOR_BKG = mBackground; DarkTheme.COLOR_BKG = mBackground;
DarkTheme.COLOR_SELECTED_OUTLINE = mSelectedOutline; DarkTheme.COLOR_SELECTED_OUTLINE = mSelectedOutline;

View file

@ -413,6 +413,11 @@ namespace IDE.ui
g.PushColor(DarkTheme.COLOR_MENU_FOCUSED); g.PushColor(DarkTheme.COLOR_MENU_FOCUSED);
defer:loop g.PopColor(); defer:loop g.PopColor();
} }
else
{
g.PushColor(DarkTheme.COLOR_TEXT);
defer:loop g.PopColor();
}
let str = StringView(mEntryDisplay, index, @c.NextIndex - index); let str = StringView(mEntryDisplay, index, @c.NextIndex - index);

View file

@ -877,7 +877,7 @@ namespace IDE.ui
// column header // column header
using (g.PushClip(0, 0, mWidth, GS!(mColumnHeaderHeight))) using (g.PushClip(0, 0, mWidth, GS!(mColumnHeaderHeight)))
{ {
using (g.PushColor(0xFFFFFFFF)) using (g.PushColor(DarkTheme.COLOR_TEXT))
{ {
g.SetFont(mFont); g.SetFont(mFont);
float strViewColumnStart = GS!(mColumnDisplayStart) + mBytesPerDisplayLine*GS!(mColumnDisplayStride) + GS!(mStrViewDisplayStartOffset); float strViewColumnStart = GS!(mColumnDisplayStart) + mBytesPerDisplayLine*GS!(mColumnDisplayStride) + GS!(mStrViewDisplayStartOffset);
@ -908,7 +908,7 @@ namespace IDE.ui
float displayAdj = (float)(-mShowPositionDisplayOffset * lineSpacing); float displayAdj = (float)(-mShowPositionDisplayOffset * lineSpacing);
using (g.PushTranslate(0, displayAdj)) using (g.PushTranslate(0, displayAdj))
{ {
using (g.PushColor(0xFFFFFFFF)) using (g.PushColor(DarkTheme.COLOR_TEXT))
{ {
//ulong lineStart = mCurPosition / mBytesPerDisplayLine; //ulong lineStart = mCurPosition / mBytesPerDisplayLine;
int lockSize = lineCount * mBytesPerDisplayLine; int lockSize = lineCount * mBytesPerDisplayLine;

View file

@ -652,17 +652,15 @@ namespace IDE.ui
subItem.mOnMouseClick.Add(new => ListViewItemClicked); subItem.mOnMouseClick.Add(new => ListViewItemClicked);
} }
var listViewItem = (BreakpointListViewItem)root.GetChildAtIndex(breakIdx); var listViewItem = (BreakpointListViewItem)root.GetChildAtIndex(breakIdx);
listViewItem.mTextColor = Color.White; listViewItem.mTextColor = DarkTheme.COLOR_TEXT;
listViewItem.mIsBold = breakpoint.IsActiveBreakpoint(); listViewItem.mIsBold = breakpoint.IsActiveBreakpoint();
var locString = scope String(); var locString = scope String();
breakpoint.ToString_Location(locString); breakpoint.ToString_Location(locString);
listViewItem.Label = locString; listViewItem.Label = locString;
if (breakpoint.IsBound()) if (!breakpoint.IsBound())
listViewItem.mTextColor = 0xFFFFFFFF; listViewItem.mTextColor = (0x00FFFFFF & DarkTheme.COLOR_TEXT) | 0x80000000;
else
listViewItem.mTextColor = 0x80FFFFFF;
// Condition // Condition
var subItem = listViewItem.GetSubItem(2); var subItem = listViewItem.GetSubItem(2);

View file

@ -369,6 +369,8 @@ namespace IDE.ui
{ {
base.Draw(g); base.Draw(g);
using (g.PushColor(DarkTheme.COLOR_TEXT))
{
g.DrawString("Breakpoint Condition", mConditionEdit.mX, mConditionEdit.mY - GS!(20)); g.DrawString("Breakpoint Condition", mConditionEdit.mX, mConditionEdit.mY - GS!(20));
g.DrawString("Thread Id", mThreadEdit.mX, mThreadEdit.mY - GS!(20)); g.DrawString("Thread Id", mThreadEdit.mX, mThreadEdit.mY - GS!(20));
g.DrawString("Log String", mLogEdit.mX, mLogEdit.mY - GS!(20)); g.DrawString("Log String", mLogEdit.mX, mLogEdit.mY - GS!(20));
@ -379,4 +381,5 @@ namespace IDE.ui
g.DrawString(str, mWidth - GS!(16) - GS!(8), mHitCountEdit.mY - GS!(19), .Right); g.DrawString(str, mWidth - GS!(16) - GS!(8), mHitCountEdit.mY - GS!(19), .Right);
} }
} }
}
} }

View file

@ -255,7 +255,8 @@ namespace IDE.ui
{ {
using (g.PushClip(0, 0, width, height)) using (g.PushClip(0, 0, width, height))
{ {
using (g.PushColor(0xFF00FF00)) // Using override to prevent the color turning black when using a dark text color.
using (g.PushColorOverride(0xFF00FF00))
{ {
float prevY = 0; float prevY = 0;
@ -439,12 +440,15 @@ namespace IDE.ui
using (g.PushColor(0x20FFFFFF)) using (g.PushColor(0x20FFFFFF))
g.FillRect(0, 0, mWidth, mHeight); g.FillRect(0, 0, mWidth, mHeight);
using (g.PushColor(DarkTheme.COLOR_TEXT))
{
DrawData(g, mData, mTimes, dataRect.mX, dataRect.mY, dataRect.mWidth, dataRect.mHeight); DrawData(g, mData, mTimes, dataRect.mX, dataRect.mY, dataRect.mWidth, dataRect.mHeight);
g.SetFont(DarkTheme.sDarkTheme.mSmallBoldFont); g.SetFont(DarkTheme.sDarkTheme.mSmallBoldFont);
g.DrawString(mLabel, -GS!(0), -GS!(0), .Centered, dataRect.mX); g.DrawString(mLabel, -GS!(0), -GS!(0), .Centered, dataRect.mX);
} }
} }
}
#region fields #region fields
ScrollableWidget mScrollableWidget; ScrollableWidget mScrollableWidget;

View file

@ -322,12 +322,15 @@ namespace IDE.ui
{ {
base.Draw(g); base.Draw(g);
using (g.PushColor(DarkTheme.COLOR_TEXT))
{
g.DrawString("Find what:", 6, mEditWidget.mY - GS!(18)); g.DrawString("Find what:", 6, mEditWidget.mY - GS!(18));
if (mReplaceWidget != null) if (mReplaceWidget != null)
g.DrawString("Replace with:", GS!(6), mReplaceWidget.mY - GS!(18)); g.DrawString("Replace with:", GS!(6), mReplaceWidget.mY - GS!(18));
g.DrawString("Look in:", GS!(6), mLocationCombo.mY - GS!(18)); g.DrawString("Look in:", GS!(6), mLocationCombo.mY - GS!(18));
g.DrawString("Look at these file types:", GS!(6), mFileTypesCombo.mY - GS!(18)); g.DrawString("Look at these file types:", GS!(6), mFileTypesCombo.mY - GS!(18));
} }
}
public override void Update() public override void Update()
{ {

View file

@ -834,10 +834,13 @@ namespace IDE.ui
g.DrawString(label, widget.mX + GS!(6), widget.mY - GS!(20)); g.DrawString(label, widget.mX + GS!(6), widget.mY - GS!(20));
} }
using (g.PushColor(DarkTheme.COLOR_TEXT))
{
DrawLabel(mKindBar, mRegenerating ? "Regenerating ..." : "Generator"); DrawLabel(mKindBar, mRegenerating ? "Regenerating ..." : "Generator");
for (var uiEntry in mUIEntries) for (var uiEntry in mUIEntries)
DrawLabel(uiEntry.mWidget, uiEntry.mLabel); DrawLabel(uiEntry.mWidget, uiEntry.mLabel);
} }
}
public override void DrawAll(Graphics g) public override void DrawAll(Graphics g)
{ {

View file

@ -140,6 +140,7 @@ namespace IDE.ui
{ {
base.Draw(g); base.Draw(g);
using (g.PushColor(DarkTheme.COLOR_TEXT))
g.DrawString((mBreakpointKind == .Memory) ? "Breakpoint Address" : "Symbol Name", mAddressEdit.mX, mAddressEdit.mY - GS!(20)); g.DrawString((mBreakpointKind == .Memory) ? "Breakpoint Address" : "Symbol Name", mAddressEdit.mX, mAddressEdit.mY - GS!(20));
//g.DrawString("Project Directory", mDialogEditWidget.mX, mDialogEditWidget.mY - 20); //g.DrawString("Project Directory", mDialogEditWidget.mX, mDialogEditWidget.mY - 20);
} }

View file

@ -95,10 +95,13 @@ namespace IDE.ui
{ {
base.Draw(g); base.Draw(g);
using (g.PushColor(DarkTheme.COLOR_TEXT))
{
DrawLabel(g, mDescEdit, "Profile Description (Optional)"); DrawLabel(g, mDescEdit, "Profile Description (Optional)");
DrawLabel(g, mThreadCombo, "Thread"); DrawLabel(g, mThreadCombo, "Thread");
DrawLabel(g, mSampleRateEdit, "Sample Rate"); DrawLabel(g, mSampleRateEdit, "Sample Rate");
} }
}
public override void CalcSize() public override void CalcSize()
{ {

View file

@ -684,6 +684,9 @@ namespace IDE.ui
{ {
base.Draw(g); base.Draw(g);
g.PushColor(DarkTheme.COLOR_TEXT);
defer g.PopColor();
g.SetFont(DarkTheme.sDarkTheme.mSmallFont); g.SetFont(DarkTheme.sDarkTheme.mSmallFont);
g.DrawString("Session", mSessionComboBox.mX - GS!(2), mSessionComboBox.mY, .Right); g.DrawString("Session", mSessionComboBox.mX - GS!(2), mSessionComboBox.mY, .Right);
g.DrawString("Thread", mThreadComboBox.mX - GS!(2), mThreadComboBox.mY, .Right); g.DrawString("Thread", mThreadComboBox.mX - GS!(2), mThreadComboBox.mY, .Right);

View file

@ -4746,6 +4746,7 @@ namespace IDE.ui
case 2: lineStr.AppendF("{0}", (lineIdx + 1) % 100); case 2: lineStr.AppendF("{0}", (lineIdx + 1) % 100);
default: lineStr.AppendF("{0}", lineIdx + 1); default: lineStr.AppendF("{0}", lineIdx + 1);
} }
using (g.PushColor(DarkTheme.COLOR_TEXT))
g.DrawString(lineStr, 0, GS!(2) + ewc.mLineCoords[lineIdx], FontAlign.Right, editX - GS!(14)); g.DrawString(lineStr, 0, GS!(2) + ewc.mLineCoords[lineIdx], FontAlign.Right, editX - GS!(14));
} }
} }

View file

@ -92,6 +92,7 @@ namespace IDE.ui
} }
g.SetFont(s_Font); g.SetFont(s_Font);
using (g.PushColor(gApp.mSettings.mUISettings.mColors.mText))
g.DrawString(mPath, 10, 0, .Left, mWidth - 10); g.DrawString(mPath, 10, 0, .Left, mWidth - 10);
} }