Componentes.Terceros.DevExp.../official/x.26/ExpressNavBar/Demos/CBuilder/AlphaBlendingDemo/AlphaBlendingMain.cpp
2007-09-09 11:27:27 +00:00

213 lines
8.3 KiB
C++

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "AlphaBlendingMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "dxNavBar"
#pragma link "dxNavBarBase"
#pragma link "dxNavBarCollns"
#pragma link "dxNavBarStyles"
#pragma resource "*.dfm"
TfmAlphaBlendingMain *fmAlphaBlendingMain;
//---------------------------------------------------------------------------
__fastcall TfmAlphaBlendingMain::TfmAlphaBlendingMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::lbBgDblClick(TObject *Sender)
{
ClearBgImage(nbMain->StyleBackground);
iBg->Picture->Graphic = NULL;
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::lbBgGroup1DblClick(TObject *Sender)
{
ClearBgImage(nbMain->Groups->Items[0]->StyleBackground);
iBgGroup1->Picture->Graphic = NULL;
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::lbBgGroup2DblClick(TObject *Sender)
{
ClearBgImage(nbMain->Groups->Items[1]->StyleBackground);
iBgGroup2->Picture->Graphic = NULL;
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::lbBgGroup3DblClick(TObject *Sender)
{
ClearBgImage(nbMain->Groups->Items[2]->StyleBackground);
iBgGroup3->Picture->Graphic = NULL;
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::iBgClick(TObject *Sender)
{
SetBgImage(nbMain->StyleBackground);
iBg->Picture->Assign(nbMain->StyleBackground->Style->Image);
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::iBgGroup1Click(TObject *Sender)
{
SetBgImage(nbMain->Groups->Items[0]->StyleBackground);
iBgGroup1->Picture->Assign(nbMain->Groups->Items[0]->StyleBackground->Style->Image);
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::iBgGroup2Click(TObject *Sender)
{
SetBgImage(nbMain->Groups->Items[1]->StyleBackground);
iBgGroup2->Picture->Assign(nbMain->Groups->Items[1]->StyleBackground->Style->Image);
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::iBgGroup3Click(TObject *Sender)
{
SetBgImage(nbMain->Groups->Items[2]->StyleBackground);
iBgGroup3->Picture->Assign(nbMain->Groups->Items[2]->StyleBackground->Style->Image);
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::tbBgChange(TObject *Sender)
{
SetBgAlphaBlending(nbMain->StyleBackground, (Byte)tbBg->Position);
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::tbBgGroup1Change(TObject *Sender)
{
SetBgAlphaBlending(nbMain->Groups->Items[0]->StyleBackground, (Byte)tbBgGroup1->Position);
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::tbBgGroup2Change(TObject *Sender)
{
SetBgAlphaBlending(nbMain->Groups->Items[1]->StyleBackground, (Byte)tbBgGroup2->Position);
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::tbBgGroup3Change(TObject *Sender)
{
SetBgAlphaBlending(nbMain->Groups->Items[2]->StyleBackground, (Byte)tbBgGroup3->Position);
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::FormCreate(TObject *Sender)
{
tbBg->Position = nbMain->StyleBackground->Style->AlphaBlending;
tbBgGroup1->Position = nbMain->Groups->Items[0]->StyleBackground->Style->AlphaBlending;
tbBgGroup2->Position = nbMain->Groups->Items[1]->StyleBackground->Style->AlphaBlending;
tbBgGroup3->Position = nbMain->Groups->Items[2]->StyleBackground->Style->AlphaBlending;
iBg->Picture->Assign(nbMain->StyleBackground->Style->Image);
iBgGroup1->Picture->Assign(nbMain->Groups->Items[0]->StyleBackground->Style->Image);
iBgGroup2->Picture->Assign(nbMain->Groups->Items[1]->StyleBackground->Style->Image);
iBgGroup3->Picture->Assign(nbMain->Groups->Items[2]->StyleBackground->Style->Image);
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::nbMainGroupHotTrack(TObject *Sender,
TdxNavBarGroup *AGroup)
{
if (AGroup == bgDetails)
bgDetails->LargeImageIndex = 2;
else bgDetails->LargeImageIndex = 3;
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::nbMainCalcGroupClientHeight(
TObject *Sender, TdxNavBarGroupViewInfo *AViewInfo, int &AHeight)
{
if (AViewInfo->Group == bgDetails && AViewInfo->Group->Expanded)
AHeight = 50;
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::nbMainCustomDrawGroupClientForeground(
TObject *Sender, TCanvas *ACanvas, TdxNavBarGroupViewInfo *AViewInfo,
bool &AHandled)
{
if (AViewInfo->Group == bgDetails && AViewInfo->Group->Expanded)
{
ACanvas->Brush->Style = bsClear;
ACanvas->Font->Color = clBlack;
ACanvas->Font->Size = 8;
ACanvas->Font->Style = ACanvas->Font->Style.Clear();
ACanvas->Font->Style = ACanvas->Font->Style << fsBold;
ACanvas->TextOut(AViewInfo->ItemsRect.Left + 10, AViewInfo->ItemsRect.Top + 10, "My Documents");
ACanvas->Font->Style = ACanvas->Font->Style >> fsBold;
ACanvas->TextOut(AViewInfo->ItemsRect.Left + 10, AViewInfo->ItemsRect.Top + 24, "System Folder");
AHandled = True;
}
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::nbMainGetGroupHint(TObject *Sender,
TdxNavBarGroup *AGroup, AnsiString &AHint)
{
if (AGroup == bgDetails)
AHint = "Custom hint for " + AGroup->Caption;
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::nbMainCalcGroupHintRect(
TObject *Sender, TdxNavBarGroup *AGroup,
TdxNavBarViewInfo *AViewInfo, TRect &R)
{
if (AGroup == bgDetails)
{
R.Right = R.Left + 300;
R.Bottom = R.Top + 30;
}
}
//---------------------------------------------------------------------------
void __fastcall TfmAlphaBlendingMain::nbMainCustomDrawGroupHint(
TObject *Sender, TCanvas *ACanvas, TdxNavBarGroup *AGroup,
AnsiString AHint, TRect &R, bool &AHandled)
{
tagRECT ARect;
ARect = R;
if (AGroup == bgDetails)
{
ACanvas->Pen->Width = 1;
ACanvas->Pen->Style = psSolid;
ACanvas->Pen->Color = clYellow;
ACanvas->Brush->Style = bsSolid;
ACanvas->Brush->Color = clTeal;
ACanvas->Rectangle(R.Left, R.Top, R.Right, R.Bottom);
ACanvas->Brush->Style = bsClear;
ACanvas->Font->Color = clYellow;
ACanvas->Font->Size = 14;
ACanvas->Font->Style = ACanvas->Font->Style << fsBold;
DrawText(ACanvas->Handle, AHint.c_str(), AHint.Length(), &ARect,
DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS | DT_NOPREFIX);
AHandled = True;
}
}
//---------------------------------------------------------------------------
void TfmAlphaBlendingMain::ClearBgImage(TdxNavBarStyleItem *AStyleItem)
{
AStyleItem->Style->Image->Graphic = NULL;
}
//---------------------------------------------------------------------------
void TfmAlphaBlendingMain::SetBgImage(TdxNavBarStyleItem *AStyleItem)
{
if (OpenPictureDialog1->Execute())
AStyleItem->Style->Image->LoadFromFile(OpenPictureDialog1->FileName);
}
//---------------------------------------------------------------------------
void TfmAlphaBlendingMain::SetBgAlphaBlending(TdxNavBarStyleItem *AStyleItem, Byte AValue)
{
AStyleItem->Style->AlphaBlending = AValue;
AStyleItem->Style->AlphaBlending2 = AValue;
}
//---------------------------------------------------------------------------