using System;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public partial class DimmerPage : FrameLayout
{
#region 控件集合
static DimmerPage bodyView;
///
/// 控制界面加载区域
///
FrameLayout controlView;
///
/// 功能备注
///
Button btnFunctionName;
///
/// 功能所属楼层、房间
///
Button btnFromFoorAndRoom;
///
/// 收藏按钮
///
Button btnCollection;
///
/// 调光控件
///
WaveSeekBarOn dimmerBar;
///
/// 亮度显示按钮
///
Button btnBrightnessText;
///
/// 开关按钮
///
Button btnSwitch;
#endregion
#region 区域变量
Light light;
Button btnCollection_Out;
Button btnFunctionName_Out;
Button btnFromFloor_Out;
bool onDimmerBar = false;
///
/// 刷新显示信息
///
Action actionRefresh;
#endregion
public override void RemoveFromParent()
{
base.RemoveFromParent();
bodyView = null;
}
public DimmerPage(Light func)
{
bodyView = this;
light = func;
}
public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut)
{
btnCollection_Out = btnCollectionIcon;
btnFunctionName_Out = btnFunctionNameOut;
btnFromFloor_Out = btnFromFloorOut;
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
//new TopViewDiv(bodyView, Language.StringByID(StringId.Lights)).LoadTopView(light,null);
//new PublicAssmebly().LoadTopView(bodyView, Language.StringByID(StringId.Lights), light);
controlView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(88),
Width = Application.GetRealWidth(327),
Height = Application.GetRealHeight(526),
BackgroundImagePath = "Public/Fragmentbg.png",
};
bodyView.AddChidren(controlView);
btnFunctionName = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(14),
Width = Application.GetRealWidth(270),
Height = Application.GetRealHeight(37),
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
Text = light.name,
};
controlView.AddChidren(btnFunctionName);
btnFromFoorAndRoom = new Button()
{
X = Application.GetRealWidth(16),
Y = btnFunctionName.Bottom,
Width = Application.GetRealWidth(270),
Height = Application.GetRealHeight(21),
TextColor = CSS_Color.PromptingColor1,
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
Text = light.GetRoomListName()
};
controlView.AddChidren(btnFromFoorAndRoom);
btnCollection = new Button()
{
X = Application.GetRealWidth(273),
Y = Application.GetRealHeight(14),
Width = Application.GetMinRealAverage(40),
Height = Application.GetMinRealAverage(40),
SelectedImagePath = "Collection/CollectionIcon.png",
UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
IsSelected = light.collection
};
controlView.AddChidren(btnCollection);
dimmerBar = new WaveSeekBarOn()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(74 + 16),
Width = Application.GetRealWidth(168 - 40),
Height = Application.GetRealHeight(288 - 16 - 16),
//WaveBorderColor = CSS_Color.PromptingColor2,
BorderColor = 0x00000000,
CornerRadius = Application.GetRealWidth(40),
BorderWidth = 0,
//WavePadding = Application.GetRealWidth(-5),
//BackgroundColor = CSS_Color.BackgroundColor,
//Radius = (uint)Application.GetRealWidth(40),
Progress = light.brightness,
//ProgressTextColor =0x00000000,
IsProgressTextShow = false,
};
controlView.AddChidren(dimmerBar);
if(light.trait_on_off.value.ToString() == "on")
{
dimmerBar.SetProgressBarColors(CSS_Color.AuxiliaryColor1, CSS_Color.AuxiliaryColor1);
}
else
{
dimmerBar.SetProgressBarColors(CSS_Color.DividingLineColor, CSS_Color.DividingLineColor);
}
dimmerBar.Progress = light.brightness;
btnBrightnessText = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y =( (100 - dimmerBar.Progress) * Application.GetRealHeight(288 - 16 - 16) /100)+ Application.GetRealWidth(40),
Width = Application.GetRealWidth(56),
Height = Application.GetRealWidth(46),
UnSelectedImagePath = "FunctionIcon/Light/BrightnessBg.png",
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
Text = light.brightness + "%",
};
controlView.AddChidren(btnBrightnessText);
#region 渐变时间调节
var btnGradualChangeText = new Button()
{
X = Application.GetRealWidth(35),
Y = Application.GetRealHeight(385),
Width = Application.GetRealWidth(224),
Height = Application.GetRealHeight(21),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
TextID = StringId.SpeedOfChange,
};
controlView.AddChidren(btnGradualChangeText);
var btnGradualChangeMinValuesText = new Button()
{
X = Application.GetRealWidth(35),
Y = btnGradualChangeText.Bottom+ Application.GetRealHeight(8),
Width = Application.GetRealWidth(22),
Height = Application.GetRealHeight(21),
Text = "0s",
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
};
controlView.AddChidren(btnGradualChangeMinValuesText);
var barGradualChange = new DiyImageSeekBar()
{
X = btnGradualChangeMinValuesText.Right,
Y = Application.GetRealHeight(412 - 21) + Application.GetRealHeight(8),
Width = Application.GetRealWidth(210),
Height = Application.GetRealHeight(54),
SeekBarViewHeight = Application.GetRealHeight(8),
ThumbImagePath = "Public/ThumbImage.png",
ThumbImageHeight = Application.GetRealHeight(54),
ProgressBarColor = CSS_Color.MainColor,
ProgressTextColor = CSS_Color.FirstLevelTitleColor,
ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
ProgressBarUnitSring = "s",
MaxValue = 10,
Progress = 0,
SeekBarPadding = Application.GetRealWidth(20),
};
controlView.AddChidren(barGradualChange);
var btnGradualChangeMaxValuesText = new Button()
{
X = barGradualChange.Right,
Y = btnGradualChangeText.Bottom + Application.GetRealHeight(8),
Width = Application.GetRealWidth(35),
Height = Application.GetRealHeight(21),
Text = "10s",
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
};
controlView.AddChidren(btnGradualChangeMaxValuesText);
#endregion
btnSwitch = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(462),
Width = Application.GetMinRealAverage(40),
Height = Application.GetMinRealAverage(40),
UnSelectedImagePath = "Public/PowerClose.png",
SelectedImagePath = "Public/PowerOpen.png",
IsSelected = light.trait_on_off.value.ToString() == "on",
};
controlView.AddChidren(btnSwitch);
LoadEventList();
new TopViewDiv(bodyView, Language.StringByID(StringId.Lights)).LoadTopView(light, actionRefresh);
}
}
}