//--------------------------------------------------------------------------- #include #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(Components[i])) ((TdxBarLargeButton*)Components[i])->ShowCaption = AChecked; } __finally { dxBarManager->LockUpdate = false; } } //---------------------------------------------------------------------------