git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@7 05c56307-c608-d34a-929d-697000501d7a
428 lines
15 KiB
C++
428 lines
15 KiB
C++
//---------------------------------------------------------------------------
|
|
#include <vcl.h>
|
|
#pragma hdrstop
|
|
|
|
#include "EBars5Main.h"
|
|
#include "EBarsDemoRating.h"
|
|
#include "EBars5About.h"
|
|
//---------------------------------------------------------------------------
|
|
#pragma package(smart_init)
|
|
#pragma link "dxBar"
|
|
#pragma link "dxBarExtItems"
|
|
#pragma resource "*.dfm"
|
|
#include <shellapi.h>
|
|
TEBars5MainForm *EBars5MainForm;
|
|
//---------------------------------------------------------------------------
|
|
__fastcall TEBars5MainForm::TEBars5MainForm(TComponent* Owner)
|
|
: TForm(Owner)
|
|
{
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TEBars5MainForm::FillPageList(void)
|
|
{
|
|
int I;
|
|
|
|
dxBLIPages->Items->Clear();
|
|
TList *ItemList = new TList;
|
|
BarManager->GetItemsByCategory(BarManager->Categories->IndexOf("Pages"), ItemList);
|
|
for (I = 0; I < ItemList->Count; I++)
|
|
{
|
|
dxBLIPages->Items->AddStrings(((TdxBarListItem*)(ItemList->Items[I]))->Items);
|
|
dxBLIPages->Items->Add('-');
|
|
}
|
|
ItemList->Free();
|
|
BarManagerStyleClick(NULL);
|
|
}
|
|
|
|
TTabSheet* __fastcall TEBars5MainForm::AddPage(String ACaption)
|
|
{
|
|
TTabSheet *Result = new TTabSheet(pcProducts);
|
|
Result->Parent = pcProducts;
|
|
Result->PageControl = pcProducts;
|
|
Result->Caption = ACaption;
|
|
Result->Brush->Color = (TColor)((TdxBarManagerWrapper *)BarManager)->FlatToolbarsColorWrapper;
|
|
|
|
return Result;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
TdxBarDockControl* __fastcall TEBars5MainForm::CreateDockControl(TTabSheet *APage)
|
|
{
|
|
TdxBarDockControl *Result = new TdxBarDockControl(APage);
|
|
Result->Parent = APage;
|
|
Result->BarManager = BarManager;
|
|
Result->Align = dalTop;
|
|
Result->AllowDocking = false;
|
|
return Result;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
TdxBar* __fastcall TEBars5MainForm::CreateToolBar(TdxBarDockControl *ADockControl)
|
|
{
|
|
TdxBar *Result = BarManager->Bars->Add();
|
|
Result->Caption = ((TTabSheet *)(ADockControl->Parent))->Caption + " Components";
|
|
Result->DockControl = ADockControl;
|
|
Result->Visible = true;
|
|
Result->Hidden = true;
|
|
Result->WholeRow = true;
|
|
Result->NotDocking = Result->NotDocking << dsNone << dsTop << dsLeft << dsRight << dsBottom;
|
|
Result->BorderStyle = bbsNone;
|
|
return Result;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::FillPageControl(void)
|
|
{
|
|
int I;
|
|
TTabSheet *Page;
|
|
TdxBarDockControl *DockCtrl;
|
|
TdxBar *ToolBar;
|
|
|
|
BarManager->GetItemsByCategory(BarManager->Categories->IndexOf("Products"), FItemList);
|
|
for (I = 0; I < FItemList->Count; I++)
|
|
{
|
|
Page = AddPage(((TdxBarItem*)(FItemList->Items[I]))->Caption);
|
|
DockCtrl = CreateDockControl(Page);
|
|
ToolBar = CreateToolBar(DockCtrl);
|
|
ToolBar->LockUpdate = true;
|
|
ToolBar->ItemLinks->Assign(((TdxBarInPlaceSubItem *)(FItemList->Items[I]))->ItemLinks);
|
|
ToolBar->LockUpdate = false;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::FormCreate(TObject *Sender)
|
|
{
|
|
FItemList = new TList();
|
|
FItemsDisabling = idCyclic;
|
|
String Path;
|
|
|
|
dmCommonData->AboutFormClass = __classid(TEBars5AboutForm);
|
|
|
|
FillPageList();
|
|
FillPageControl();
|
|
pcProducts->Brush->Color = (TColor)((TdxBarManagerWrapper *)BarManager)->FlatToolbarsColorWrapper;
|
|
Path = ExtractFileDir(Application->ExeName);
|
|
try
|
|
{
|
|
FFileName = Path + "\\What's New.rtf";
|
|
Editor->Lines->LoadFromFile(FFileName);
|
|
dxBarStaticStatus->Caption = "Loaded";
|
|
}
|
|
catch(...)
|
|
{};
|
|
Timer1->Enabled = true;
|
|
Timer2->Enabled = true;
|
|
StatusImIndex = -1;
|
|
DetachingBar = 0;
|
|
pcProductsChange(pcProducts);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::EditorSelectionChange(TObject *Sender)
|
|
{
|
|
Integer EditorRow, EditorCol;
|
|
|
|
EditorRow = SendMessage(Editor->Handle, EM_LINEFROMCHAR, Editor->SelStart, 0);
|
|
EditorCol = Editor->SelStart - SendMessage(Editor->Handle, EM_LINEINDEX, EditorRow, 0);
|
|
dxBarStaticEditor->Caption = Format("Line: %3d Col: %3d", ARRAYOFCONST((1 + EditorRow, 1 + EditorCol)));
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::Timer1Timer(TObject *Sender)
|
|
{
|
|
if (dxBarProgressItem->Position == 255) Delta = -1;
|
|
if (dxBarProgressItem->Position == 0) Delta = 1;
|
|
dxBarProgressItem->StepBy(Delta);
|
|
BarManager->Bars->Items[4]->AlphaBlendValue = (byte)dxBarProgressItem->Position;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::pcProductsChange(TObject *Sender)
|
|
{
|
|
TdxBarListItem *BarItem;
|
|
|
|
FPageIndex = ((TPageControl*)Sender)->ActivePage->PageIndex;
|
|
FDisabledItemIndex = 0;
|
|
|
|
String CurPage = ((TPageControl *)Sender)->ActivePage->Caption;
|
|
dxBLIPages->ItemIndex = dxBLIPages->Items->IndexOf(CurPage);
|
|
for (int I = 0; I < BarManager->Bars->Items[3]->ItemLinks->Count; I++)
|
|
{
|
|
BarItem = (TdxBarListItem *)BarManager->Bars->Items[3]->ItemLinks->Items[I]->Item;
|
|
BarItem->ItemIndex = BarItem->Items->IndexOf(CurPage);
|
|
}
|
|
if (!(FItemsDisabling == idCyclic)) {
|
|
bool AEnabled = FItemsDisabling == idNone;
|
|
for (int i=0; i < ((TdxBarInPlaceSubItem*)FItemList->Items[FPageIndex])->ItemLinks->Count; i++)
|
|
((TdxBarLargeButton*)((TdxBarInPlaceSubItem*)FItemList->Items[FPageIndex])->ItemLinks->Items[i]->Item)->Enabled = AEnabled;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::dxBarSubItemFilePaintBar(TObject *Sender,
|
|
TCanvas *Canvas, const TRect &R)
|
|
{
|
|
TRect SR, BR;
|
|
|
|
DrawVerticalGradient(Canvas, R, 0, 0, 0, 0, 0, 255);
|
|
SR = R;
|
|
iBars5->Picture->Bitmap->TransparentColor = clBlack;
|
|
BR = Rect(0, 0, iBars5->Picture->Bitmap->Width, iBars5->Picture->Bitmap->Height);
|
|
SR.Left = (SR.Left + SR.Right - BR.Right)/2;
|
|
SR.Right = SR.Left + BR.Right;
|
|
SR.Top = SR.Bottom - BR.Bottom;
|
|
if (SR.Top > 0)
|
|
{
|
|
Canvas->Brush->Style = bsClear;
|
|
Canvas->BrushCopy(SR, iBars5->Picture->Bitmap, BR, clBlack);
|
|
Canvas->Brush->Style = bsSolid;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::CMSysColorChange(Messages::TMessage &Message)
|
|
{
|
|
int I;
|
|
TColor ToolbarsColor;
|
|
|
|
TForm::Dispatch(&Message);
|
|
ToolbarsColor = (TColor)((TdxBarManagerWrapper *)BarManager)->FlatToolbarsColorWrapper;
|
|
pcProducts->Brush->Color = ToolbarsColor;
|
|
if (pcProducts->HandleAllocated())
|
|
SendMessage(pcProducts->Handle, WM_SYSCOLORCHANGE, 0, 0);
|
|
for (I = 0; I < pcProducts->PageCount; I++)
|
|
pcProducts->Pages[I]->Brush->Color = ToolbarsColor;
|
|
if (pcProducts->ActivePage->HandleAllocated())
|
|
SendMessage(pcProducts->ActivePage->Handle, WM_SYSCOLORCHANGE, 0, 0);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::dxBarButtonOnWebClick(TObject *Sender)
|
|
{
|
|
ShellExecute(0, NULL, "http://www.devexpress.com", NULL, NULL, SW_RESTORE);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::dxBarButtonExitClick(TObject *Sender)
|
|
{
|
|
Close();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::dxBLBDBGridClick(TObject *Sender)
|
|
{
|
|
StatusImIndex = ((TdxBarLargeButton *)Sender)->LargeImageIndex;
|
|
dxBLBStatus->LargeImageIndex = StatusImIndex;
|
|
dxBLBStatus->Caption = ((TdxBarLargeButton *)Sender)->Caption;
|
|
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::Timer2Timer(TObject* Sender)
|
|
{
|
|
if (dxBLBStatus->LargeImageIndex == -1)
|
|
dxBLBStatus->LargeImageIndex = StatusImIndex;
|
|
else
|
|
dxBLBStatus->LargeImageIndex = -1;
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TEBars5MainForm::dxBLBStatusClick(TObject* Sender)
|
|
{
|
|
String Text;
|
|
|
|
Text = "You have selected the " + dxBLBStatus->Caption + " !";
|
|
if (dxBLBStatus->Caption != "Not Selected")
|
|
MessageBox(Handle, Text.c_str(), "Status bar button", MB_OK | MB_ICONINFORMATION);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
TTabSheet* TEBars5MainForm::FindPageByCaption(String ACaption)
|
|
{
|
|
int I;
|
|
TTabSheet *Result = 0;
|
|
for (I = 0; I < pcProducts->PageCount; I++)
|
|
if (pcProducts->Pages[I]->Caption == ACaption)
|
|
Result = pcProducts->Pages[I];
|
|
return Result;
|
|
}
|
|
|
|
void __fastcall TEBars5MainForm::dxBLIPagesClick(TObject* Sender)
|
|
{
|
|
pcProducts->ActivePage = FindPageByCaption(((TdxBarListItem *)Sender)->Items->Strings[((TdxBarListItem *)Sender)->ItemIndex]);
|
|
pcProductsChange(pcProducts);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TEBars5MainForm::dxBarSubItemProductsDetaching(TObject* Sender)
|
|
{
|
|
int I;
|
|
|
|
if (DetachingBar == 0)
|
|
{
|
|
DetachingBar = BarManager->Bars->Add();
|
|
DetachingBar->Caption = "Products";
|
|
DetachingBar->AllowCustomizing = false;
|
|
DetachingBar->Hidden = true;
|
|
DetachingBar->MultiLine = true;
|
|
dxBarSubItemProducts->DetachingBar = DetachingBar->Index;
|
|
for (I = 0; I < dxBarSubItemProducts->ItemLinks->Count; I++)
|
|
if ( (String)(dxBarSubItemProducts->ItemLinks->Items[I]->Item->ClassName()) == "TdxBarInPlaceSubItem")
|
|
DetachingBar->ItemLinks->Add()->Assign(dxBarSubItemProducts->ItemLinks->Items[I]);
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::dxBarButtonNewClick(TObject* Sender)
|
|
{
|
|
Editor->Clear();
|
|
dxBarStaticStatus->Caption = "";
|
|
FFileName = "";
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::dxBarButtonPrintClick(TObject* Sender)
|
|
{
|
|
if (PrintDialog->Execute())
|
|
Editor->Print(FFileName);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::dxBarButtonOpenClick(TObject* Sender)
|
|
{
|
|
OpenDialog->FileName = "";
|
|
if (OpenDialog->Execute())
|
|
{
|
|
FFileName = OpenDialog->FileName;
|
|
Editor->PlainText = (OpenDialog->FilterIndex == 2);
|
|
Editor->Lines->LoadFromFile(FFileName);
|
|
dxBarStaticStatus->Caption = "Loaded";
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::SaveFile(bool ASaveAs)
|
|
{
|
|
if (ASaveAs || (FFileName == ""))
|
|
{
|
|
SaveDialog->FileName = FFileName;
|
|
if (!SaveDialog->Execute()) return;
|
|
Editor->PlainText = (SaveDialog->FilterIndex == 2);
|
|
FFileName = SaveDialog->FileName;
|
|
}
|
|
Editor->Lines->SaveToFile(FFileName);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::dxBarButtonSaveClick(TObject* Sender)
|
|
{
|
|
SaveFile(false);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::dxBarButtonSaveAsClick(TObject* Sender)
|
|
{
|
|
SaveFile(true);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TEBars5MainForm::CheckBox4Click(TObject *Sender)
|
|
{
|
|
if (((TCheckBox*)Sender)->Checked)
|
|
BarManager->LargeImages = ilComponents;
|
|
else
|
|
BarManager->LargeImages = NULL;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::cbHotImagesClick(TObject *Sender)
|
|
{
|
|
if (((TCheckBox*)Sender)->Checked)
|
|
BarManager->HotImages = ilHotImages;
|
|
else
|
|
BarManager->HotImages = NULL;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TEBars5MainForm::Timer3Timer(TObject *Sender)
|
|
{
|
|
int AItemToEnable;
|
|
if (FDisabledItemIndex == 0)
|
|
AItemToEnable = ((TdxBarInPlaceSubItem*)FItemList->Items[FPageIndex])->ItemLinks->Count - 1;
|
|
else
|
|
AItemToEnable = FDisabledItemIndex - 1;
|
|
((TdxBarLargeButton*) ((TdxBarInPlaceSubItem*)FItemList->Items[FPageIndex])->ItemLinks->Items[AItemToEnable]->Item)->Enabled = true;
|
|
((TdxBarLargeButton*)((TdxBarInPlaceSubItem*)FItemList->Items[FPageIndex])->ItemLinks->Items[FDisabledItemIndex]->Item)->Enabled = false;
|
|
if (FDisabledItemIndex + 1 > (((TdxBarInPlaceSubItem*)FItemList->Items[FPageIndex])->ItemLinks->Count - 1))
|
|
FDisabledItemIndex = 0;
|
|
else
|
|
FDisabledItemIndex++;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::rgItemsDisablingClick(TObject *Sender)
|
|
{
|
|
switch (((TRadioGroup*)Sender)->ItemIndex) {
|
|
case 0: {
|
|
FItemsDisabling = idCyclic;
|
|
Timer3->Enabled = True;
|
|
}; break;
|
|
case 1: {
|
|
FItemsDisabling = idAll;
|
|
Timer3->Enabled = False;
|
|
}; break;
|
|
case 2: {
|
|
FItemsDisabling = idNone;
|
|
Timer3->Enabled = False;
|
|
}; break;
|
|
}
|
|
pcProductsChange(pcProducts);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::FormDestroy(TObject *Sender)
|
|
{
|
|
delete FItemList;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::cbShowCaptionsClick(TObject *Sender)
|
|
{
|
|
BarManager->LockUpdate = true;
|
|
try {
|
|
bool AChecked = ((TCheckBox*)Sender)->Checked;
|
|
for (int i=0; i < ComponentCount; i++)
|
|
if (dynamic_cast<TdxBarLargeButton*>(Components[i]))
|
|
((TdxBarLargeButton*)Components[i])->ShowCaption = AChecked;
|
|
if (AChecked)
|
|
pcProducts->Height = 70;
|
|
else
|
|
pcProducts->Height = 58;
|
|
}
|
|
__finally {
|
|
BarManager->LockUpdate = false;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::cbDisabledImagesClick(TObject *Sender)
|
|
{
|
|
if (((TCheckBox*)Sender)->Checked)
|
|
BarManager->DisabledImages = ilDisabledImages;
|
|
else
|
|
BarManager->DisabledImages = NULL;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::BarManagerStyleClick(TObject *Sender)
|
|
{
|
|
BarManager->Style = (TdxBarManagerStyle)BarManagerStyle->ItemIndex;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TEBars5MainForm::FormResize(TObject *Sender)
|
|
{
|
|
Editor->Invalidate();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|