371 lines
15 KiB
C++
371 lines
15 KiB
C++
|
|
//---------------------------------------------------------------------------
|
||
|
|
#include <vcl.h>
|
||
|
|
#pragma hdrstop
|
||
|
|
|
||
|
|
#include "EBar2000DemoMain.h"
|
||
|
|
#include "EBar2000DemoAbout.h"
|
||
|
|
#include "EBarsDemoRating.h"
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
#pragma package(smart_init)
|
||
|
|
#pragma link "dxBar"
|
||
|
|
#pragma link "dxBarExtItems"
|
||
|
|
#pragma resource "*.dfm"
|
||
|
|
TEBar2000DemoMainForm *EBar2000DemoMainForm;
|
||
|
|
bool FUpdateVisible;
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
__fastcall TEBar2000DemoMainForm::TEBar2000DemoMainForm(TComponent* Owner)
|
||
|
|
: TForm(Owner)
|
||
|
|
{
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbStyleMeasureItem(TdxBarCustomCombo *Sender,
|
||
|
|
int AIndex, int &AHeight)
|
||
|
|
{
|
||
|
|
AHeight = 35;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbStyleDrawItem(TdxBarCustomCombo *Sender,
|
||
|
|
int AIndex, TRect &ARect, TOwnerDrawState AState)
|
||
|
|
{
|
||
|
|
tagRECT R = (tagRECT)ARect;
|
||
|
|
|
||
|
|
if (Sender->DroppedDown)
|
||
|
|
{
|
||
|
|
StyleImages->Draw(Sender->Canvas, R.left, R.top, AIndex
|
||
|
|
#if __BORLANDC__ > 0x530
|
||
|
|
, true
|
||
|
|
#endif
|
||
|
|
);
|
||
|
|
Sender->Canvas->FrameRect(R);
|
||
|
|
InflateRect(&R, -1, -1);
|
||
|
|
Sender->Canvas->FrameRect(R);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
Sender->Canvas->TextRect(R, R.left + 1, R.top, Sender->Text);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TEBar2000DemoMainForm::FormCreate(TObject *Sender)
|
||
|
|
{
|
||
|
|
dmCommonData->AboutFormClass = __classid(TEBar2000DemoAboutForm);
|
||
|
|
|
||
|
|
cbAddress->Items->Add(dxStartURL);
|
||
|
|
cbAddress->Items->Add(dxSupportURL);
|
||
|
|
|
||
|
|
TrackBarChange(tbStandard);
|
||
|
|
TrackBarChange(tbFormatting);
|
||
|
|
btnFontColor->Tag = clBlue;
|
||
|
|
UpdateColorItems(btnFontColor, btnDownFontColorItem, btnCustomFontColor, btnFontColorItem, FontColorPopupMenu);
|
||
|
|
btnHighlight->Tag = clYellow;
|
||
|
|
UpdateColorItems(btnHighlight, btnDownColorItem, btnCustomColor, btnColorItem, HightlightColorPopupMenu);
|
||
|
|
FUpdateVisible = true;
|
||
|
|
rgStyleClick(NULL);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TEBar2000DemoMainForm::UpdateColorItems(TdxBarButton *AButton, TdxBarButton *ADownButton,
|
||
|
|
TdxBarButton *ACustomButton, TdxBarButton *AItemButton, TdxBarPopupMenu *APopupMenu)
|
||
|
|
{
|
||
|
|
const TColor Colors[] = {clBlack, clMaroon, clGreen, clOlive, clNavy, clPurple, clTeal, clGray, clSilver,
|
||
|
|
clRed, clLime, clYellow, clBlue, clFuchsia, clAqua, clWhite};
|
||
|
|
const AnsiString ColorNames[] = {"Black", "Maroon", "Green", "Olive", "Navy", "Purple", "Teal", "Gray", "Silver",
|
||
|
|
"Red", "Lime", "Yellow", "Blue", "Fuchsia", "Aqua", "White"};
|
||
|
|
int I;
|
||
|
|
Graphics::TBitmap *B;
|
||
|
|
TdxBarItemLink *ItemLink;
|
||
|
|
|
||
|
|
B = new Graphics::TBitmap;
|
||
|
|
B->Width = Images->Width + 1;
|
||
|
|
B->Height = Images->Height;
|
||
|
|
APopupMenu->ItemLinks->Clear();
|
||
|
|
for( I = 0; I <= 15; I++)
|
||
|
|
{
|
||
|
|
if (Colors[I] != clBlack) B->Canvas->Brush->Color = clBlack;
|
||
|
|
else B->Canvas->Brush->Color = clWhite;
|
||
|
|
B->Canvas->FillRect(Rect(0, 0, B->Width, B->Height));
|
||
|
|
B->Canvas->Brush->Color = Colors[I];
|
||
|
|
B->Canvas->Pen->Color = clGray;
|
||
|
|
if (AButton->Tag == Colors[I]) B->Canvas->Rectangle(1, 1, B->Width - 3, B->Height - 2);
|
||
|
|
else B->Canvas->Rectangle(2, 2, B->Width - 2, B->Height - 1);
|
||
|
|
|
||
|
|
ItemLink = APopupMenu->ItemLinks->Add();
|
||
|
|
if (AButton->Tag == Colors[I])
|
||
|
|
{
|
||
|
|
ItemLink->Item = ADownButton;
|
||
|
|
ADownButton->Down = true;
|
||
|
|
}
|
||
|
|
else ItemLink->Item = AItemButton;
|
||
|
|
ItemLink->Data = Colors[I];
|
||
|
|
ItemLink->UserCaption = ColorNames[I];
|
||
|
|
ItemLink->UserGlyph = B;
|
||
|
|
};
|
||
|
|
|
||
|
|
ItemLink = APopupMenu->ItemLinks->Add();
|
||
|
|
ItemLink->Item = ACustomButton;
|
||
|
|
ItemLink->UserCaption = "Custom ...";
|
||
|
|
ItemLink->BeginGroup = true;
|
||
|
|
|
||
|
|
delete B;
|
||
|
|
};
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::btnFontColorItemClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
btnFontColor->Tag = ((TdxBarButton*)Sender)->ClickItemLink->Data;
|
||
|
|
UpdateColorItems(btnFontColor, btnDownFontColorItem, btnCustomFontColor, btnFontColorItem, FontColorPopupMenu);
|
||
|
|
UpdateColorButtonGlyph(btnFontColor);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TEBar2000DemoMainForm::UpdateColorButtonGlyph(TdxBarButton *AButton)
|
||
|
|
{
|
||
|
|
Graphics::TBitmap *B;
|
||
|
|
TRect R;
|
||
|
|
|
||
|
|
B = new Graphics::TBitmap;
|
||
|
|
B->Width = AButton->Glyph->Width;
|
||
|
|
B->Height = AButton->Glyph->Height;
|
||
|
|
if (AButton->Tag == clFuchsia) B->Canvas->Brush->Color = clSilver;
|
||
|
|
else B->Canvas->Brush->Color = clFuchsia;
|
||
|
|
R = Rect(0, 0, B->Width, B->Height);
|
||
|
|
B->Canvas->FillRect(R);
|
||
|
|
B->Canvas->BrushCopy(R, AButton->Glyph, R, AButton->Glyph->TransparentColor);
|
||
|
|
B->Canvas->Brush->Color = (TColor)(AButton->Tag);
|
||
|
|
if (ColorToRGB((TColor)(AButton->Tag)) != ColorToRGB(clBtnFace)) B->Canvas->Pen->Color = (TColor)(AButton->Tag);
|
||
|
|
else B->Canvas->Pen->Color = clBlack;
|
||
|
|
B->Canvas->Rectangle(0, B->Height - 4, B->Width, B->Height - 1);
|
||
|
|
AButton->Glyph->Assign(B);
|
||
|
|
delete B;
|
||
|
|
};
|
||
|
|
void __fastcall TEBar2000DemoMainForm::btnCustomFontColorClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
ColorDialog->Color = (TColor)(btnFontColor->Tag);
|
||
|
|
if (ColorDialog->Execute())
|
||
|
|
{
|
||
|
|
btnFontColor->Tag = ColorDialog->Color;
|
||
|
|
UpdateColorButtonGlyph(btnFontColor);
|
||
|
|
UpdateColorItems(btnFontColor, btnDownFontColorItem, btnCustomFontColor, btnFontColorItem, FontColorPopupMenu);
|
||
|
|
};
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::btnColorItemClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
btnHighlight->Tag = ((TdxBarButton*)Sender)->ClickItemLink->Data;
|
||
|
|
UpdateColorItems(btnHighlight, btnDownColorItem, btnCustomColor, btnColorItem, HightlightColorPopupMenu);
|
||
|
|
UpdateColorButtonGlyph(btnHighlight);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::btnCustomColorClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
ColorDialog->Color = (TColor)(btnHighlight->Tag);
|
||
|
|
if (ColorDialog->Execute())
|
||
|
|
{
|
||
|
|
btnHighlight->Tag = ColorDialog->Color;
|
||
|
|
UpdateColorButtonGlyph(btnHighlight);
|
||
|
|
UpdateColorItems(btnHighlight, btnDownColorItem, btnCustomColor, btnColorItem, HightlightColorPopupMenu);
|
||
|
|
};
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::btnStandardClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
FUpdateVisible = false;
|
||
|
|
dxBarManager->Bars->Items[((TdxBarButton*)Sender)->Tag]->Visible = ((TdxBarButton*)Sender)->Down;
|
||
|
|
FUpdateVisible = true;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::sbFontClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
FontDialog->Font->Assign(dxBarManager->Font);
|
||
|
|
if (FontDialog->Execute()) dxBarManager->Font->Assign(FontDialog->Font);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbCanCustomizeClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->CanCustomize = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::sbDockColorClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
if (ColorDialog->Execute())
|
||
|
|
dxBarManager->DockColor = ColorDialog->Color;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbAllowResetClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->AllowReset = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbShowHelpButtonClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->ShowHelpButton = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbSunkenBorderClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->SunkenBorder = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbMenusShowRecentItemsFirstClick(
|
||
|
|
TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->MenusShowRecentItemsFirst = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::rgMenuAnimationsClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->MenuAnimations = (TdxBarMenuAnimations)(rgMenuAnimations->ItemIndex);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::SpeedButton1Click(TObject *Sender)
|
||
|
|
{
|
||
|
|
FontDialog->Font->Assign(dxBarManager->Bars->Items[1]->Font);
|
||
|
|
if (FontDialog->Execute())
|
||
|
|
dxBarManager->Bars->Items[1]->Font->Assign(FontDialog->Font);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::SpeedButton2Click(TObject *Sender)
|
||
|
|
{
|
||
|
|
FontDialog->Font->Assign(dxBarManager->Bars->Items[2]->Font);
|
||
|
|
if (FontDialog->Execute())
|
||
|
|
dxBarManager->Bars->Items[2]->Font->Assign(FontDialog->Font);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbAllowCustomizingBar1Click(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Bars->Items[1]->AllowCustomizing = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbAllowQuickCustomizingBar1Click(
|
||
|
|
TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Bars->Items[1]->AllowQuickCustomizing = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbAllowResetBar1Click(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Bars->Items[1]->AllowReset = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbAllowCustomizingBar2Click(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Bars->Items[2]->AllowCustomizing = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbAllowQuickCustomizingBar2Click(
|
||
|
|
TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Bars->Items[2]->AllowQuickCustomizing = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbAllowResetBar2Click(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Bars->Items[2]->AllowReset = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbShowFullMenusAfterDelayClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->ShowFullMenusAfterDelay = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::dxBarManagerHelpButtonClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
MessageDlg("You click on Help Button .", mtInformation, TMsgDlgButtons() << mbOK,0);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbRotateWhenVerticalClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Bars->Items[3]->RotateWhenVertical = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::btnCustomizeClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Customizing(true);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::dxBarManagerBarVisibleChange(
|
||
|
|
TdxBarManager *Sender, TdxBar *ABar)
|
||
|
|
{
|
||
|
|
if ( FUpdateVisible && HandleAllocated())
|
||
|
|
switch (ABar->Index) {
|
||
|
|
case 1: btnStandard->Down = ABar->Visible;
|
||
|
|
case 2: btnFormatting->Down = ABar->Visible;
|
||
|
|
case 3: btnInternet->Down = ABar->Visible;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbStretchGlyphsClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->StretchGlyphs = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TEBar2000DemoMainForm::CheckBox2Click(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Bars->Items[2]->MultiLine = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TEBar2000DemoMainForm::rgStyleClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Style = (TdxBarManagerStyle)rgStyle->ItemIndex;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TEBar2000DemoMainForm::CheckBox1Click(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Bars->Items[1]->MultiLine = ((TCheckBox*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TEBar2000DemoMainForm::TrackBarChange(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->Bars->Items[((TTrackBar*)Sender)->Tag]->AlphaBlendValue = (byte)(((TTrackBar*)Sender)->Position * 15);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbHotImagesClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
if (((TCheckBox*)Sender)->Checked)
|
||
|
|
dxBarManager->HotImages = ilHotImages;
|
||
|
|
else
|
||
|
|
dxBarManager->HotImages = NULL;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbDisabledImagesClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
if (((TCheckBox*)Sender)->Checked) {
|
||
|
|
dxBarManager->DisabledImages = ilDisabledImages;
|
||
|
|
dxBarManager->DisabledLargeImages = ilDisabledImages;
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
dxBarManager->DisabledLargeImages = NULL;
|
||
|
|
dxBarManager->DisabledImages = NULL;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TEBar2000DemoMainForm::CheckBox4Click(TObject *Sender)
|
||
|
|
{
|
||
|
|
if (((TCheckBox*)Sender)->Checked)
|
||
|
|
dxBarManager->LargeImages = Images;
|
||
|
|
else
|
||
|
|
dxBarManager->LargeImages = NULL;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TEBar2000DemoMainForm::cbShowCaptionsClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
dxBarManager->LockUpdate = true;
|
||
|
|
try {
|
||
|
|
bool AChecked = ((TCheckBox*)Sender)->Checked;
|
||
|
|
for (int i=0; i < ComponentCount - 1; i++)
|
||
|
|
if (dynamic_cast<TdxBarLargeButton*>(Components[i]))
|
||
|
|
((TdxBarLargeButton*)Components[i])->ShowCaption = AChecked;
|
||
|
|
}
|
||
|
|
__finally {
|
||
|
|
dxBarManager->LockUpdate = false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|