You've already forked lazarus-ccr
jvcllaz: Add TJvTabBar incl demo.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6260 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -1,3 +1,6 @@
|
|||||||
|
tjvtabbar.bmp
|
||||||
|
tjvmoderntabbarpainter.bmp
|
||||||
|
Tjvtabbarxppainter.bmp
|
||||||
tjvoutlookbar.bmp
|
tjvoutlookbar.bmp
|
||||||
tjvtimeline.bmp
|
tjvtimeline.bmp
|
||||||
tjvtmtimeline.bmp
|
tjvtmtimeline.bmp
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
BIN
components/jvcllaz/design/JvCustomControls/images/tjvtabbar.bmp
Normal file
BIN
components/jvcllaz/design/JvCustomControls/images/tjvtabbar.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
@ -15,12 +15,15 @@ implementation
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, ImgList, Controls, PropEdits, GraphPropEdits, ComponentEditors,
|
Classes, ImgList, Controls, PropEdits, GraphPropEdits, ComponentEditors,
|
||||||
JvDsgnConsts, JvOutlookBar, JvOutlookBarEditors,
|
JvDsgnConsts,
|
||||||
|
JvOutlookBar, JvOutlookBarEditors,
|
||||||
|
JvTabBar, JvTabBarXPPainter,
|
||||||
JvTimeLine, JvTMTimeline, JvTimeLineEditor;
|
JvTimeLine, JvTMTimeline, JvTimeLineEditor;
|
||||||
|
|
||||||
procedure Register;
|
procedure Register;
|
||||||
begin
|
begin
|
||||||
RegisterComponents(RsPaletteJvcl, [
|
RegisterComponents(RsPaletteJvcl, [
|
||||||
|
TJvTabBar, TJvModernTabBarPainter, TJvTabBarXPPainter,
|
||||||
TJvOutlookBar,
|
TJvOutlookBar,
|
||||||
TJvTimeLine,
|
TJvTimeLine,
|
||||||
TJvTMTimeLine
|
TJvTMTimeLine
|
||||||
|
84
components/jvcllaz/examples/JvTabBar/JvTabBarDemo.lpi
Normal file
84
components/jvcllaz/examples/JvTabBar/JvTabBarDemo.lpi
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<General>
|
||||||
|
<SessionStorage Value="InProjectDir"/>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<Title Value="JvTabBarDemo"/>
|
||||||
|
<Scaled Value="True"/>
|
||||||
|
<ResourceType Value="res"/>
|
||||||
|
<UseXPManifest Value="True"/>
|
||||||
|
<XPManifest>
|
||||||
|
<DpiAware Value="True"/>
|
||||||
|
</XPManifest>
|
||||||
|
<Icon Value="0"/>
|
||||||
|
</General>
|
||||||
|
<BuildModes Count="1">
|
||||||
|
<Item1 Name="Default" Default="True"/>
|
||||||
|
</BuildModes>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<FormatVersion Value="2"/>
|
||||||
|
<Modes Count="0"/>
|
||||||
|
</RunParams>
|
||||||
|
<RequiredPackages Count="2">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="JvCustomLazR"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
</Item2>
|
||||||
|
</RequiredPackages>
|
||||||
|
<Units Count="2">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="JvTabBarDemo.lpr"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="main.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="Form1"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="Main"/>
|
||||||
|
</Unit1>
|
||||||
|
</Units>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="..\..\bin\JvTabBarDemo"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<Linking>
|
||||||
|
<Debugging>
|
||||||
|
<UseExternalDbgSyms Value="True"/>
|
||||||
|
</Debugging>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Debugging>
|
||||||
|
<Exceptions Count="3">
|
||||||
|
<Item1>
|
||||||
|
<Name Value="EAbort"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Name Value="ECodetoolError"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Name Value="EFOpenError"/>
|
||||||
|
</Item3>
|
||||||
|
</Exceptions>
|
||||||
|
</Debugging>
|
||||||
|
</CONFIG>
|
22
components/jvcllaz/examples/JvTabBar/JvTabBarDemo.lpr
Normal file
22
components/jvcllaz/examples/JvTabBar/JvTabBarDemo.lpr
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
program JvTabBarDemo;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
uses
|
||||||
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
||||||
|
cthreads,
|
||||||
|
{$ENDIF}{$ENDIF}
|
||||||
|
Interfaces, // this includes the LCL widgetset
|
||||||
|
Forms, Main
|
||||||
|
{ you can add units after this };
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
RequireDerivedFormResource := True;
|
||||||
|
Application.Scaled := True;
|
||||||
|
Application.Initialize;
|
||||||
|
Application.CreateForm(TForm1, Form1);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
||||||
|
|
303
components/jvcllaz/examples/JvTabBar/main.lfm
Normal file
303
components/jvcllaz/examples/JvTabBar/main.lfm
Normal file
@ -0,0 +1,303 @@
|
|||||||
|
object Form1: TForm1
|
||||||
|
Left = 310
|
||||||
|
Height = 335
|
||||||
|
Top = 127
|
||||||
|
Width = 614
|
||||||
|
Caption = 'Form1'
|
||||||
|
ClientHeight = 315
|
||||||
|
ClientWidth = 614
|
||||||
|
Menu = MainMenu1
|
||||||
|
OnCreate = FormCreate
|
||||||
|
OnDestroy = FormDestroy
|
||||||
|
LCLVersion = '1.9.0.0'
|
||||||
|
object JvTabBar1: TJvTabBar
|
||||||
|
Left = 0
|
||||||
|
Top = 40
|
||||||
|
Width = 614
|
||||||
|
Visible = False
|
||||||
|
HotTracking = True
|
||||||
|
Painter = JvModernTabBarPainter1
|
||||||
|
Images = ImageList1
|
||||||
|
Tabs = <>
|
||||||
|
OnTabClosing = JvTabBar1TabClosing
|
||||||
|
OnTabClosed = JvTabBar1TabClosed
|
||||||
|
OnTabSelected = JvTabBar1TabSelected
|
||||||
|
end
|
||||||
|
object ToolBar: TToolBar
|
||||||
|
Left = 0
|
||||||
|
Height = 40
|
||||||
|
Top = 0
|
||||||
|
Width = 614
|
||||||
|
AutoSize = True
|
||||||
|
ButtonHeight = 40
|
||||||
|
ButtonWidth = 40
|
||||||
|
Caption = 'ToolBar'
|
||||||
|
Images = ImageList1
|
||||||
|
ShowCaptions = True
|
||||||
|
TabOrder = 1
|
||||||
|
object TbOpen: TToolButton
|
||||||
|
Left = 1
|
||||||
|
Top = 0
|
||||||
|
Action = AcFileOpen
|
||||||
|
end
|
||||||
|
object TbQuit: TToolButton
|
||||||
|
Left = 102
|
||||||
|
Top = 0
|
||||||
|
Action = AcFileQuit
|
||||||
|
end
|
||||||
|
object TbStyle: TToolButton
|
||||||
|
Left = 47
|
||||||
|
Top = 0
|
||||||
|
Caption = 'Style'
|
||||||
|
DropdownMenu = PopupMenu1
|
||||||
|
ImageIndex = 3
|
||||||
|
Style = tbsButtonDrop
|
||||||
|
end
|
||||||
|
object ToolButton2: TToolButton
|
||||||
|
Left = 97
|
||||||
|
Height = 40
|
||||||
|
Top = 0
|
||||||
|
Caption = 'ToolButton2'
|
||||||
|
Style = tbsDivider
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object Memo1: TMemo
|
||||||
|
Left = 4
|
||||||
|
Height = 244
|
||||||
|
Top = 67
|
||||||
|
Width = 606
|
||||||
|
Align = alClient
|
||||||
|
BorderSpacing.Around = 4
|
||||||
|
Font.CharSet = ANSI_CHARSET
|
||||||
|
Font.Color = clBlack
|
||||||
|
Font.Height = -11
|
||||||
|
Font.Name = 'Courier New'
|
||||||
|
Font.Pitch = fpFixed
|
||||||
|
Font.Quality = fqDraft
|
||||||
|
ParentFont = False
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
|
object JvModernTabBarPainter1: TJvModernTabBarPainter
|
||||||
|
Font.Color = clWindowText
|
||||||
|
DisabledFont.Color = clGrayText
|
||||||
|
SelectedFont.Color = clWindowText
|
||||||
|
left = 360
|
||||||
|
top = 192
|
||||||
|
end
|
||||||
|
object JvTabBarXPPainter1: TJvTabBarXPPainter
|
||||||
|
Font.Color = clWindowText
|
||||||
|
DisabledFont.Color = clGrayText
|
||||||
|
SelectedFont.Color = clWindowText
|
||||||
|
FixedTabSize = 0
|
||||||
|
left = 360
|
||||||
|
top = 120
|
||||||
|
end
|
||||||
|
object ImageList1: TImageList
|
||||||
|
left = 208
|
||||||
|
top = 120
|
||||||
|
Bitmap = {
|
||||||
|
4C69040000001000000010000000FFFFFF00FFFFFF00459AD3EF4498D2FF4197
|
||||||
|
D1FF3F95D1FF3D94D0FF3B93D0FF3B92CFFF3B92CFFF3B92CFFF3D94D0FF4398
|
||||||
|
D2EF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF004297D2FF3B93D0FF62AD
|
||||||
|
DCFF93CDEDFFBBE7FAFFD9FCFFFFD9FAFFFFD7F9FFFFD7F9FFFFD9FBFFFF3D94
|
||||||
|
D0FF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003C93D0FFE9FFFFFFA8DA
|
||||||
|
F3FF7BBDE4FF4398D1FF3493D1FF46AAE0FF53BDEBFF61D3FBFFCEF8FFFF3B92
|
||||||
|
CFFF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003991CFFFE9FFFFFFAFF0
|
||||||
|
FFFFCEF7FFFFDAFAFFFFC5EBFBFF90C8EAFF66ADDBFF47A8DDFFCBF8FFFF3C92
|
||||||
|
CFFF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003A91CEFFD2FCFFFF7AE2
|
||||||
|
FCFF77DDFCFF7FDFFBFF9BE6FCFFB4EDFFFFD8FAFFFF318ACBFFC6F8FFFF3D93
|
||||||
|
CFFF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003B91CEFFC9F9FFFF7EE2
|
||||||
|
FCFF7CDEFCFF78DCFBFF72D9FAFF6AD6FAFFD4F7FFFF318ACBFFC1F8FFFF3D93
|
||||||
|
CFFF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003C91CEFFC0F8FFFF7FE2
|
||||||
|
FCFF7DDFFCFF7ADDFBFF75DAFAFF6DD7FAFFC7F3FFFF338BCBFFBCF7FFFF3D92
|
||||||
|
CFFF00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF003C92CEFFB6F6FFFF80E3
|
||||||
|
FCFF7DDFFCFF7ADDFBFF76DAFAFF6ED7FAFFBAEFFFFF338BCBFFB5F7FFFF3A8F
|
||||||
|
CDFF4397D1E7FFFFFF00FFFFFF00FFFFFF00FFFFFF003D92CEFFADF3FFFF81E3
|
||||||
|
FCFF7EDFFCFF7ADDFBFF76DAFAFF6FD8FAFFADEBFFFF358ACBFFB0F4FFFFABF4
|
||||||
|
FFFF3F94D0FFFFFFFF00FFFFFF00FFFFFF00FFFFFF003E92CEFFA3F1FFFF82E3
|
||||||
|
FCFF7EDFFCFF7ADDFBFF76DAFAFF71D9FBFFA0E8FFFF368ACAFF87EBFFFFA3F2
|
||||||
|
FFFF3E92CEFFFFFFFF00FFFFFF00FFFFFF00FFFFFF003E92CEFF9AF0FFFF83E4
|
||||||
|
FDFF7EDFFCFF7ADDFBFF76DAFAFF8AE2FEFF4EA9DDFF54ABDCFF8DEDFFFF9FF3
|
||||||
|
FFFF3E92CFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF004094CFFF92F1FFFF85E7
|
||||||
|
FFFF80E1FDFF7ADEFBFF77DBFBFF85E2FFFF3B8DCBFF93F1FFFF96F3FFFF9FF9
|
||||||
|
FFFF4094D0FFFFFFFF00FFFFFF00FFFFFF00FFFFFF004295CEEF58B0DFFF6DC9
|
||||||
|
EFFF7FE2FDFF7EE3FEFF7ADEFCFF80E2FFFF3F92CEFF4094CFFF4093CFFF4094
|
||||||
|
D0FF4396CFF1FFFFFF00FFFFFF00FFFFFF00FFFFFF000000002F326F997C3D8A
|
||||||
|
C1C74092CEFF54ADDEFF66C4EDFF7AE0FEFF4295D0FF1F455F502653725A2859
|
||||||
|
7A5F0000002FFFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000120000
|
||||||
|
002500000033326E987A3E8BC1C84396D1FF4496CFF1000000070000000A0000
|
||||||
|
000B00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000
|
||||||
|
0000000000000000001200000025000000330000002F00000000000000000000
|
||||||
|
000000000000FFFFFF00FFFFFF004A7CA5004A7CA5004A7CA5004A7CA5004A7E
|
||||||
|
A7004A7EA8004A7EA8004A7EA8004A7EA800497DA7004579A400709BBE00B5D2
|
||||||
|
EA00C3DAEF58CDE3F5FB3F75A1FF4B7CA7004B7CA7004B7CA7004B7EA8B04B81
|
||||||
|
AEFF4B83B0FF4A83B0FF4A83B0FF4A83B0FF4A82AFFF447DA9FF709CBFFFB9D5
|
||||||
|
EBFFB3D1EAFFC1DBF2FF4279A5FF5179AD005079AD004F7AAC004C7EAFFF4438
|
||||||
|
32FF433B37FF433D38FF433D38FF433D38FF423B36FF3C332CFFB9DAF5FF7FB0
|
||||||
|
DAFF5495CCFFC0DAEFFF467CA8FF0091460000914600009243004C7AAEFF4742
|
||||||
|
3FFF4A4443FF484644FF484644FF484644FF474542FF433C36FF5FA1D8FF5C9A
|
||||||
|
CCFF5896C9FFB8D3EBFF4980ACFF008F4D00008F4C00008E4900009046FF0387
|
||||||
|
4AFF524449FF4E484AFF4D494AFF4C4A4AFF4C4848FF4A423DFF60A0D5FF5D98
|
||||||
|
C9FF5894C6FFAFCCE6FF4B83B0FF008F4E00008C4A00008843FFA2E6DAFF0090
|
||||||
|
47FF5B414BFF57474DFF544A4EFF514C4EFF4F4D4CFF4D4641FF5E9CD2FF5C95
|
||||||
|
C5FF5990C1FFA6C4DFFF4E86B5FF008D4B00008743FF9BE0D1FF00C1A0FF0086
|
||||||
|
3FFF008D44FF009247FF177A4CFF584E51FF54504FFF524B45FF5B9ACDFF5C91
|
||||||
|
C1FF20B7F5FF9EBCD7FF5189B8FF008A48FF86DEC8FF00C59CFF00C49BFF63DC
|
||||||
|
C8FF5FDECAFF5EE4CFFF009247FF5E4F55FF585353FF574F4AFF5A96CAFF5B8F
|
||||||
|
BEFF22B9F7FF95B5D3FF548DBCFF008A48FF74DABDFF00CD9CFF00CC9CFF00D2
|
||||||
|
9EFF00D5A0FF5FF0D0FF009146FF635358FF5D5756FF5B534DFF5794C5FF588E
|
||||||
|
BCFF47749BFF88AFCFFF5790C0FF00000033008744FF65D7B4FF00DAA2FF0086
|
||||||
|
41FF008B44FF008F46FF1C7D50FF645A5CFF605C5AFF605852FF5490C2FF558C
|
||||||
|
BAFF4E81ADFF7EA6C8FF5A94C4FF00924D0000000033008945FF52DCB0FF008E
|
||||||
|
47FF725760FF6B5B60FF675E60FF646060FF62605FFF645D57FF518DBEFF528A
|
||||||
|
B7FF5187B4FF739FC2FF5D97C9FF6A545E0000964C0000000033009147FF068A
|
||||||
|
4EFF6E6064FF696364FF676463FF676463FF676462FF68615BFF4F8ABBFF5086
|
||||||
|
B4FF4F84B1FF6895B9FF5F9BCDFF605A5C0064585D0066565B003A6BA1FF6B69
|
||||||
|
66FF6F6869FF6C6A69FF6C6A69FF6C6A69FF6C6A68FF6E6762FF4C89BAFF4E85
|
||||||
|
B2FF4D83AEFF5D8CB2FF629ED1FF5C5C5CFF5D5B5CFF5E5B5BFF5E5A5AFF5D5A
|
||||||
|
5AFF5B5A5BFF5A5B5BFF5A5B5BFF5A5B5BFF5B5A5AFF5C5956FF576876FF4E7E
|
||||||
|
A4FF4C80ACFF5082ABFF65A2D5FF000000330000003300000033000000330000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
0033365D7B79497BA2FC68A4D9FF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000120000003200000033FFFFFF00008C4AEF008743FF00843FFF0084
|
||||||
|
3FFF00843FFF00843FFF00843FFF00843FFF008641FF008946EA000000000000
|
||||||
|
000000000000FFFFFF00FFFFFF00FFFFFF00008743FFF8FFFFFFF1FFFFFFF2FF
|
||||||
|
FFFFF2FFFFFFF2FFFFFFEFFFFFFFEEFFFFFFF4FFFFFF91DBC0FF008540A60000
|
||||||
|
000000000000FFFFFF00FFFFFF00FFFFFF0000843FFFF0FFFFFF3CD9B5FF41DA
|
||||||
|
B6FF43DAB7FF41DAB6FF3BD9B4FFE9FFFFFF00772CFFF1FFFFFF8ED9BEFF0085
|
||||||
|
41A700000000FFFFFF00FFFFFF00FFFFFF0000843FFFF0FFFFFF4EDCBBFF55DD
|
||||||
|
BCFF57DDBDFF55DDBCFF4EDCBAFFEBFFFFFF00792FFFADF5E2FFF1FFFFFF91DB
|
||||||
|
C1FF008945ACFFFFFF00FFFFFF00FFFFFF0000843FFFF0FFFFFF5CE0BFFF62E1
|
||||||
|
C0FF64E1C1FF62E1C0FF5CDFBEFFEAFFFFFF40AF7EFF00792FFF00772CFFF4FF
|
||||||
|
FFFF008641FFFFFFFF00FFFFFF00FFFFFF0000843FFFEFFFFFFF68E2C3FF6DE3
|
||||||
|
C4FF6FE3C5FF6EE3C5FF6AE2C3FF97EFD8FFE7FFFFFFE8FFFFFFE6FFFFFFEDFF
|
||||||
|
FFFF00843FFFFFFFFF00FFFFFF00FFFFFF0000843FFFEEFFFFFF74E4C7FF78E5
|
||||||
|
C8FF7AE5C9FF7AE5C9FF78E5C8FF75E4C7FF73E4C7FF72E3C6FF6FE3C6FFECFF
|
||||||
|
FFFF00843FFFFFFFFF00FFFFFF00FFFFFF0000843FFFEDFFFFFF80E8CCFF84E8
|
||||||
|
CCFF85E8CDFF85E8CDFF85E8CDFF84E8CDFF84E8CCFF82E7CCFF7FE8CBFFECFF
|
||||||
|
FFFF00843FFFFFFFFF00FFFFFF00FFFFFF0000843FFFEBFFFFFF8DEAD0FF8FEA
|
||||||
|
D1FF90EAD1FF90EAD1FF90EAD1FF90EAD1FF90EAD1FF8FEAD1FF8DEAD0FFEBFF
|
||||||
|
FFFF00843FFFFFFFFF00FFFFFF00FFFFFF0000843FFFEAFFFFFF9AECD5FF9BEC
|
||||||
|
D5FF9CECD5FF9CECD5FF9CECD5FF9CECD5FF9CECD5FF9BECD5FF9AECD5FFEAFF
|
||||||
|
FFFF00843FFFFFFFFF00FFFFFF00FFFFFF0000843EFFE9FFFFFFA6EFD8FFA6EF
|
||||||
|
D8FFA7EFD8FFA7EFD8FFA7EFD8FFA7EFD8FFA7EFD8FFA6EFD8FFA6EFD8FFE9FF
|
||||||
|
FFFF00843EFFFFFFFF00FFFFFF00FFFFFF0000843EFFE8FFFFFFB2F2DCFFB2F1
|
||||||
|
DCFFB2F1DCFFB2F1DCFFB2F1DCFFB2F1DCFFB2F1DCFFB2F1DCFFB2F2DCFFE8FF
|
||||||
|
FFFF00843EFFFFFFFF00FFFFFF00FFFFFF0000843FFFE9FFFFFFC1F5E3FFBFF5
|
||||||
|
E2FFBFF5E3FFBFF5E3FFBFF5E3FFBFF5E3FFBFF5E3FFBFF5E2FFC1F5E3FFE9FF
|
||||||
|
FFFF00843FFFFFFFFF00FFFFFF00FFFFFF00008743FFF5FFFFFFE0FFF5FFDEFF
|
||||||
|
F4FFDEFFF4FFDEFFF4FFDEFFF4FFDEFFF4FFDEFFF4FFDEFFF4FFE0FFF5FFF5FF
|
||||||
|
FFFF008743FFFFFFFF00FFFFFF00FFFFFF00008044C0008743FF008440FF0084
|
||||||
|
3FFF00843FFF00843FFF00843FFF00843FFF00843FFF00843FFF008440FF0087
|
||||||
|
43FF008044C0FFFFFF00FFFFFF00FFFFFF000000002300000033000000330000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
003300000023FFFFFF00FFFFFF00000000000000000000000000000000000000
|
||||||
|
0000CF9043EACD8D3FFFCE8E40FFD19247AF0000000000000000000000000000
|
||||||
|
00000000000000000000FFFFFF0000000000000000000000000000000000CF90
|
||||||
|
4482E1B681FFFFFEF3FFFFFFF5FFD08F41FF0000000000000000000000000000
|
||||||
|
00000000000000000000FFFFFF0000000000000000000000000000000000CD8C
|
||||||
|
3FFFFBE6C6FFFBD291FFFFF6E1FFCF8D3EFFB27C3596B37B34FFB37A32FFB47C
|
||||||
|
34FFB6803AEF00000000FFFFFF00000000000000000000000000CF904480E1B4
|
||||||
|
7CFFF5D29EF2E0A85DF0FFF1D2FFBF8135FFC19255FFFAE6CCFFFAE4C9FFFDE7
|
||||||
|
CCFFB47C35FF00000000FFFFFF00000000000000000000000000CD8D40FFFCE4
|
||||||
|
BEFFE2AE68DFC8873AF0FCE3BAFFB1762DFFE4C49BFFEBB575FFE3A55AFFF9E2
|
||||||
|
C5FFB37A33FF00000000FFFFFF000000000000000000CF90447FE0B275FFFFE2
|
||||||
|
ADFFDBA256FFCD8B3DFFCFA261FFC7995FFFE8C297FFC18437FFE29942FFF5D3
|
||||||
|
AAFFB27B34FF00000000FFFFFF0000000000D0924709CD8D41FFFDE3B6FFFFE2
|
||||||
|
A4FFFFF2CBFFF2D7A9FFB17A34FFF2CFA4FFC08B46F7AA7734E4E6A049FFF6CF
|
||||||
|
A2FFB37C35FF00000000FFFFFF0000000000CC8E43A2E3B374FFFADA9FFFD89D
|
||||||
|
54FFD08E41FFB67B33FFD2A56DFFE7B373FF00000031A57434C3EAA34EFFF4CA
|
||||||
|
97FFB37C36FF00000000FFFFFF00CF9146FFD49A52FFFFE7B5FFD6994FFF0000
|
||||||
|
0033704E2366B7823FFFF4C78EFFC68B41FFB88138FFAE7935F3EBA650FFF4C6
|
||||||
|
8DFFB37C37FF00000000FFFFFF00CF9045FFFFFACAFFF4D196FFCA8C43E50000
|
||||||
|
0000B37D38FFDDAF73FFF2B568FFF6C68AFFF9C98FFFF8C98FFFECA753FFF3C2
|
||||||
|
83FFB27C37FF00000000FFFFFF00D09248FFCF9044FFD09145FF0000002CB37E
|
||||||
|
3988BF8B4AFFF8C07CFFC0873EFFB17B36FFB17B36FFAF7935FFF0AC57FFF4BE
|
||||||
|
79FFB27C38FF00000000FFFFFF00000000330000003300000033B37D3A32B27C
|
||||||
|
38FFE9B471FFE3A658E9855E2B7F0000003300000033AF7B37FFF2AF5BFFF4BA
|
||||||
|
6FFFB17C38FF00000000FFFFFF000000000000000000B47F3AFFC08A44FFCC97
|
||||||
|
51FFF8BB6CFFBA843DFF0000001300000000B9823EFFD09952FFF4B25FFFF4B5
|
||||||
|
65FFD0984FFFB57F3BFFFFFFFF000000000000000000B57F3BFFFFC06EFFFBBC
|
||||||
|
69FFFCBB69FFB37E3AFF0000000000000000B9833EFFFDBF6EFFF9B763FFF9B8
|
||||||
|
64FFFDBF6EFFB57F3BFFFFFFFF000000000000000000B6813CFFB47F3AFFB37D
|
||||||
|
3AFFB47F3AFFB6803CFF0000000000000000B6803CFFB47F3AFFB27D3AFFB27D
|
||||||
|
3AFFB47F3AFFB6803CFFFFFFFF00000000000000000000000033000000330000
|
||||||
|
0033000000330000003300000000000000000000003300000033000000330000
|
||||||
|
00330000003300000033FFFFFF00
|
||||||
|
}
|
||||||
|
end
|
||||||
|
object OpenDialog1: TOpenDialog
|
||||||
|
Options = [ofAllowMultiSelect, ofEnableSizing, ofViewDetail]
|
||||||
|
left = 209
|
||||||
|
top = 191
|
||||||
|
end
|
||||||
|
object PopupMenu1: TPopupMenu
|
||||||
|
left = 77
|
||||||
|
top = 109
|
||||||
|
object MenuItem1: TMenuItem
|
||||||
|
Action = AcModernPainter
|
||||||
|
AutoCheck = True
|
||||||
|
GroupIndex = 1
|
||||||
|
end
|
||||||
|
object MenuItem2: TMenuItem
|
||||||
|
Action = AcXPPainter
|
||||||
|
AutoCheck = True
|
||||||
|
GroupIndex = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object ActionList1: TActionList
|
||||||
|
Images = ImageList1
|
||||||
|
left = 78
|
||||||
|
top = 184
|
||||||
|
object AcFileOpen: TAction
|
||||||
|
Category = 'File'
|
||||||
|
Caption = 'Open...'
|
||||||
|
ImageIndex = 0
|
||||||
|
OnExecute = AcFileOpenExecute
|
||||||
|
end
|
||||||
|
object AcFileQuit: TAction
|
||||||
|
Category = 'File'
|
||||||
|
Caption = 'Quit'
|
||||||
|
ImageIndex = 1
|
||||||
|
OnExecute = AcFileQuitExecute
|
||||||
|
end
|
||||||
|
object AcModernPainter: TAction
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'Modern painter'
|
||||||
|
Checked = True
|
||||||
|
GroupIndex = 1
|
||||||
|
OnExecute = AcModernPainterExecute
|
||||||
|
end
|
||||||
|
object AcXPPainter: TAction
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'XP painter'
|
||||||
|
GroupIndex = 1
|
||||||
|
OnExecute = AcXPPainterExecute
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object MainMenu1: TMainMenu
|
||||||
|
left = 77
|
||||||
|
top = 253
|
||||||
|
object MenuItem3: TMenuItem
|
||||||
|
Caption = 'File'
|
||||||
|
object MenuItem4: TMenuItem
|
||||||
|
Action = AcFileOpen
|
||||||
|
end
|
||||||
|
object MenuItem5: TMenuItem
|
||||||
|
Action = AcFileQuit
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object MenuItem6: TMenuItem
|
||||||
|
Caption = 'Style'
|
||||||
|
object MenuItem7: TMenuItem
|
||||||
|
Action = AcModernPainter
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
object MenuItem8: TMenuItem
|
||||||
|
Action = AcXPPainter
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
171
components/jvcllaz/examples/JvTabBar/main.pas
Normal file
171
components/jvcllaz/examples/JvTabBar/main.pas
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
unit Main;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls,
|
||||||
|
Menus, ActnList, JvTabBar, JvTabBarXPPainter;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TForm1 }
|
||||||
|
|
||||||
|
TForm1 = class(TForm)
|
||||||
|
AcFileOpen: TAction;
|
||||||
|
AcFileQuit: TAction;
|
||||||
|
AcModernPainter: TAction;
|
||||||
|
AcXPPainter: TAction;
|
||||||
|
ActionList1: TActionList;
|
||||||
|
ImageList1: TImageList;
|
||||||
|
JvModernTabBarPainter1: TJvModernTabBarPainter;
|
||||||
|
JvTabBar1: TJvTabBar;
|
||||||
|
JvTabBarXPPainter1: TJvTabBarXPPainter;
|
||||||
|
MainMenu1: TMainMenu;
|
||||||
|
Memo1: TMemo;
|
||||||
|
MenuItem1: TMenuItem;
|
||||||
|
MenuItem2: TMenuItem;
|
||||||
|
MenuItem3: TMenuItem;
|
||||||
|
MenuItem4: TMenuItem;
|
||||||
|
MenuItem5: TMenuItem;
|
||||||
|
MenuItem6: TMenuItem;
|
||||||
|
MenuItem7: TMenuItem;
|
||||||
|
MenuItem8: TMenuItem;
|
||||||
|
OpenDialog1: TOpenDialog;
|
||||||
|
PopupMenu1: TPopupMenu;
|
||||||
|
ToolBar: TToolBar;
|
||||||
|
TbOpen: TToolButton;
|
||||||
|
TbQuit: TToolButton;
|
||||||
|
TbStyle: TToolButton;
|
||||||
|
ToolButton2: TToolButton;
|
||||||
|
procedure AcFileOpenExecute(Sender: TObject);
|
||||||
|
procedure AcFileQuitExecute(Sender: TObject);
|
||||||
|
procedure AcModernPainterExecute(Sender: TObject);
|
||||||
|
procedure AcXPPainterExecute(Sender: TObject);
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure FormDestroy(Sender: TObject);
|
||||||
|
procedure JvTabBar1TabClosed(Sender: TObject; Item: TJvTabBarItem);
|
||||||
|
procedure JvTabBar1TabClosing(Sender: TObject; Item: TJvTabBarItem;
|
||||||
|
var AllowClose: Boolean);
|
||||||
|
procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem);
|
||||||
|
private
|
||||||
|
FLoading: integer;
|
||||||
|
procedure LoadFile(AFileName: String);
|
||||||
|
|
||||||
|
public
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
Form1: TForm1;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
type
|
||||||
|
TTabInfo = class
|
||||||
|
Filename: string;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TForm1 }
|
||||||
|
|
||||||
|
procedure TForm1.AcFileOpenExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
fn: String;
|
||||||
|
begin
|
||||||
|
if OpenDialog1.Execute then
|
||||||
|
for fn in OpenDialog1.Files do LoadFile(fn);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.AcFileQuitExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Close;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.AcModernPainterExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
JvTabBar1.Painter := JvModernTabBarPainter1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.AcXPPainterExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
JvTabBar1.Painter := JvTabBarXPPainter1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
OpenDialog1.InitialDir := '..\examples\JvTabBar';
|
||||||
|
LoadFile('..\examples\JvTabBar\main.pas');
|
||||||
|
LoadFile('..\examples\JvTabBar\main.lfm');
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.FormDestroy(Sender: TObject);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
info: TTabInfo;
|
||||||
|
begin
|
||||||
|
for i := JvTabBar1.Tabs.Count-1 downto 0 do begin
|
||||||
|
info := TTabInfo((JvTabBar1.Tabs[i]).Tag);
|
||||||
|
FreeAndNil(info);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.JvTabBar1TabClosed(Sender: TObject; Item: TJvTabBarItem);
|
||||||
|
begin
|
||||||
|
if JvTabBar1.Tabs.Count = 1 then begin
|
||||||
|
JvTabBar1.Visible := false;
|
||||||
|
Memo1.Clear;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.JvTabBar1TabClosing(Sender: TObject; Item: TJvTabBarItem;
|
||||||
|
var AllowClose: Boolean);
|
||||||
|
var
|
||||||
|
info: TTabInfo;
|
||||||
|
begin
|
||||||
|
info := TTabInfo(Item.Tag);
|
||||||
|
FreeAndNil(info);
|
||||||
|
AllowClose := true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem);
|
||||||
|
var
|
||||||
|
tab: TJvTabBarItem;
|
||||||
|
info: TTabInfo;
|
||||||
|
fn: String;
|
||||||
|
begin
|
||||||
|
if FLoading <> 0 then
|
||||||
|
exit;
|
||||||
|
tab := JvTabBar1.SelectedTab;
|
||||||
|
if tab = nil then exit;
|
||||||
|
info := TTabInfo(tab.Tag);
|
||||||
|
Memo1.Lines.LoadfromFile(info.FileName);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.Loadfile(AFileName: String);
|
||||||
|
var
|
||||||
|
tab: TJvTabBarItem;
|
||||||
|
info: TTabInfo;
|
||||||
|
begin
|
||||||
|
if not FileExists(ExpandFileName(AFileName)) then begin
|
||||||
|
ShowMessage('File "' + AFileName + '" does not exist.');
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Memo1.Lines.LoadfromFile(AFileName);
|
||||||
|
inc(FLoading);
|
||||||
|
tab := TJvTabBarItem(JvTabBar1.Tabs.Add);
|
||||||
|
tab.Caption := ExtractFileName(AFileName);
|
||||||
|
info := TTabInfo.Create;
|
||||||
|
info.FileName := AFileName;
|
||||||
|
tab.Tag := PtrInt(info);
|
||||||
|
tab.ImageIndex := 2;
|
||||||
|
JvTabBar1.Visible := JvTabBar1.Tabs.Count > 0;
|
||||||
|
tab.Selected := true;
|
||||||
|
dec(FLoading);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
58
components/jvcllaz/packages/jvcustomlazr.lpk
Normal file
58
components/jvcllaz/packages/jvcustomlazr.lpk
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CONFIG>
|
||||||
|
<Package Version="4">
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Name Value="JvCustomLazR"/>
|
||||||
|
<Author Value="Various authors - see header of each unit for original author."/>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<SearchPaths>
|
||||||
|
<OtherUnitFiles Value="..\run\JvCustomControls"/>
|
||||||
|
<UnitOutputDirectory Value="..\lib\$(TargetCPU)-$(TargetOS)\run\JvCustom"/>
|
||||||
|
</SearchPaths>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Description Value="Custom controls of the JVCL library (https://sourceforge.net/projects/jvcl/) (runtime code):
|
||||||
|
- TimeLine components
|
||||||
|
- OutlookBar component
|
||||||
|
"/>
|
||||||
|
<License Value="The JVCL is released in accordance with the MPL 1.1 license. To get your own copy or read it, go to http://www.mozilla.org/MPL/MPL-1.1.html. "/>
|
||||||
|
<Version Major="1" Release="4"/>
|
||||||
|
<Files Count="5">
|
||||||
|
<Item1>
|
||||||
|
<Filename Value="..\run\JvCustomControls\jvtimeline.pas"/>
|
||||||
|
<UnitName Value="JvTimeLine"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Filename Value="..\run\JvCustomControls\jvtmtimeline.pas"/>
|
||||||
|
<UnitName Value="JvTMTimeLine"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Filename Value="..\run\JvCustomControls\jvoutlookbar.pas"/>
|
||||||
|
<UnitName Value="JvOutlookBar"/>
|
||||||
|
</Item3>
|
||||||
|
<Item4>
|
||||||
|
<Filename Value="..\run\JvCustomControls\JvTabBar.pas"/>
|
||||||
|
<UnitName Value="JvTabBar"/>
|
||||||
|
</Item4>
|
||||||
|
<Item5>
|
||||||
|
<Filename Value="..\run\JvCustomControls\JvTabBarXPPainter.pas"/>
|
||||||
|
<UnitName Value="JvTabBarXPPainter"/>
|
||||||
|
</Item5>
|
||||||
|
</Files>
|
||||||
|
<RequiredPkgs Count="2">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="JvCoreLazR"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="FCL"/>
|
||||||
|
</Item2>
|
||||||
|
</RequiredPkgs>
|
||||||
|
<UsageOptions>
|
||||||
|
<UnitPath Value="$(PkgOutDir)"/>
|
||||||
|
</UsageOptions>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
</PublishOptions>
|
||||||
|
</Package>
|
||||||
|
</CONFIG>
|
Binary file not shown.
2548
components/jvcllaz/run/JvCustomControls/JvTabBar.pas
Normal file
2548
components/jvcllaz/run/JvCustomControls/JvTabBar.pas
Normal file
File diff suppressed because it is too large
Load Diff
194
components/jvcllaz/run/JvCustomControls/JvTabBarXPPainter.pas
Normal file
194
components/jvcllaz/run/JvCustomControls/JvTabBarXPPainter.pas
Normal file
@ -0,0 +1,194 @@
|
|||||||
|
{-----------------------------------------------------------------------------
|
||||||
|
The contents of this file are subject to the Mozilla Public License
|
||||||
|
Version 1.1 (the "License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
http://www.mozilla.org/MPL/MPL-1.1.html
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
|
||||||
|
the specific language governing rights and limitations under the License.
|
||||||
|
|
||||||
|
The Original Code is: JvTabBarXPPainter.pas, released on 2007-05-07.
|
||||||
|
|
||||||
|
The Initial Developer of the Original Code is Valdir Stiebe Junior <valdir att dype dott com dott br>
|
||||||
|
All Rights Reserved.
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
|
||||||
|
You may retrieve the latest version of this file at the Project JEDI's JVCL home page,
|
||||||
|
located at http://jvcl.delphi-jedi.org
|
||||||
|
|
||||||
|
Known Issues:
|
||||||
|
-----------------------------------------------------------------------------}
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
unit JvTabBarXPPainter;
|
||||||
|
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
LCLType, Types, SysUtils, Classes, Graphics, JvTabBar;
|
||||||
|
|
||||||
|
type
|
||||||
|
TJvTabBarXPPainter = class(TJvTabBarModernPainter)
|
||||||
|
private
|
||||||
|
FFixedTabSize: Integer;
|
||||||
|
procedure SetFixedTabSize(const Value: Integer);
|
||||||
|
protected
|
||||||
|
procedure DrawBackground(Canvas: TCanvas; TabBar: TJvCustomTabBar; R: TRect); override;
|
||||||
|
procedure DrawTab(Canvas: TCanvas; Tab: TJvTabBarItem; R: TRect); override;
|
||||||
|
procedure DrawDivider(Canvas: TCanvas; LeftTab: TJvTabBarItem; R: TRect); override;
|
||||||
|
procedure DrawMoveDivider(Canvas: TCanvas; Tab: TJvTabBarItem; MoveLeft: Boolean); override;
|
||||||
|
function GetDividerWidth(Canvas: TCanvas; LeftTab: TJvTabBarItem): Integer; override;
|
||||||
|
function GetTabSize(Canvas: TCanvas; Tab: TJvTabBarItem): TSize; override;
|
||||||
|
function GetCloseRect(Canvas: TCanvas; Tab: TJvTabBarItem; R: TRect): TRect; override;
|
||||||
|
published
|
||||||
|
property FixedTabSize: Integer read FFixedTabSize write SetFixedTabSize;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
Math, Themes;
|
||||||
|
|
||||||
|
{ TJvTabBarXPPainter }
|
||||||
|
|
||||||
|
procedure TJvTabBarXPPainter.DrawBackground(Canvas: TCanvas;
|
||||||
|
TabBar: TJvCustomTabBar; R: TRect);
|
||||||
|
var
|
||||||
|
Details: TThemedElementDetails;
|
||||||
|
begin
|
||||||
|
if ThemeServices.ThemesEnabled then
|
||||||
|
begin
|
||||||
|
Details := ThemeServices.GetElementDetails(ttTabRoot);
|
||||||
|
ThemeServices.DrawElement(Canvas.Handle, Details, R);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
inherited DrawBackground(Canvas, TabBar, R);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvTabBarXPPainter.DrawDivider(Canvas: TCanvas; LeftTab: TJvTabBarItem; R: TRect);
|
||||||
|
begin
|
||||||
|
if not ThemeServices.ThemesEnabled then
|
||||||
|
inherited DrawDivider(Canvas, LeftTab, R);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvTabBarXPPainter.DrawMoveDivider(Canvas: TCanvas; Tab: TJvTabBarItem;
|
||||||
|
MoveLeft: Boolean);
|
||||||
|
begin
|
||||||
|
if not ThemeServices.ThemesEnabled then
|
||||||
|
inherited DrawMoveDivider(Canvas, Tab, MoveLeft);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvTabBarXPPainter.DrawTab(Canvas: TCanvas; Tab: TJvTabBarItem;
|
||||||
|
R: TRect);
|
||||||
|
var
|
||||||
|
TabDetails, ButtonDetails: TThemedElementDetails;
|
||||||
|
CloseRect, TextRect: TRect;
|
||||||
|
begin
|
||||||
|
if ThemeServices.ThemesEnabled then
|
||||||
|
begin
|
||||||
|
if Tab.Selected then
|
||||||
|
begin
|
||||||
|
ButtonDetails := ThemeServices.GetElementDetails(twSmallCloseButtonNormal);
|
||||||
|
TabDetails := ThemeServices.GetElementDetails(ttTabItemSelected);
|
||||||
|
end
|
||||||
|
else if Tab.Hot then
|
||||||
|
begin
|
||||||
|
ButtonDetails := ThemeServices.GetElementDetails(twSmallCloseButtonHot);
|
||||||
|
TabDetails := ThemeServices.GetElementDetails(ttTabItemHot);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
ButtonDetails := ThemeServices.GetElementDetails(twSmallCloseButtonNormal);
|
||||||
|
TabDetails := ThemeServices.GetElementDetails(ttTabItemNormal);
|
||||||
|
end;
|
||||||
|
|
||||||
|
if Tab.Closing then
|
||||||
|
ButtonDetails := ThemeServices.GetElementDetails(twSmallCloseButtonPushed);
|
||||||
|
ThemeServices.DrawElement(Canvas.Handle, TabDetails, R);
|
||||||
|
|
||||||
|
if (Tab.ImageIndex <> -1) and (Tab.GetImages <> nil) then
|
||||||
|
begin
|
||||||
|
Tab.GetImages.Draw(Canvas, R.Left + 4, R.Top + (R.Bottom - R.Top - Tab.GetImages.Height) div 2,
|
||||||
|
Tab.ImageIndex, Tab.Enabled);
|
||||||
|
Inc(R.Left, Tab.GetImages.Width + 2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
TextRect := R;
|
||||||
|
TextRect.Left := TextRect.Left + Tab.TabBar.Margin;
|
||||||
|
if Tab.TabBar.CloseButton then
|
||||||
|
begin
|
||||||
|
CloseRect := GetCloseRect(Canvas, Tab, R);
|
||||||
|
TextRect.Right := CloseRect.Left - 3;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Dec(TextRect.Right, 3);
|
||||||
|
ThemeServices.DrawText(Canvas.Handle, TabDetails, Tab.Caption, TextRect, DT_SINGLELINE or DT_VCENTER or DT_END_ELLIPSIS, 0);
|
||||||
|
|
||||||
|
if Tab.TabBar.CloseButton then
|
||||||
|
ThemeServices.DrawElement(Canvas.Handle, ButtonDetails, CloseRect);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
inherited DrawTab(Canvas, Tab, R);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TJvTabBarXPPainter.GetCloseRect(Canvas: TCanvas; Tab: TJvTabBarItem;
|
||||||
|
R: TRect): TRect;
|
||||||
|
begin
|
||||||
|
if ThemeServices.ThemesEnabled then
|
||||||
|
begin
|
||||||
|
Result.Right := R.Right - 5;
|
||||||
|
Result.Top := R.Top + ((R.Bottom div 2) - 8);
|
||||||
|
Result.Left := Result.Right - 15;
|
||||||
|
Result.Bottom := Result.Top + 15;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Result := inherited GetCloseRect(Canvas, Tab, R);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TJvTabBarXPPainter.GetDividerWidth(Canvas: TCanvas; LeftTab: TJvTabBarItem): Integer;
|
||||||
|
begin
|
||||||
|
if ThemeServices.ThemesEnabled then
|
||||||
|
Result := 1
|
||||||
|
else
|
||||||
|
Result := inherited GetDividerWidth(Canvas, LeftTab);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TJvTabBarXPPainter.GetTabSize(Canvas: TCanvas; Tab: TJvTabBarItem): TSize;
|
||||||
|
begin
|
||||||
|
if FixedTabSize > 0 then
|
||||||
|
begin
|
||||||
|
if ThemeServices.ThemesEnabled then
|
||||||
|
Result.cx := FixedTabSize
|
||||||
|
else
|
||||||
|
Result.cx := Min(FixedTabSize + 40, Canvas.TextWidth(Tab.Caption) + 26);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if ThemeServices.ThemesEnabled then
|
||||||
|
begin
|
||||||
|
Result.cx := Canvas.TextWidth(Tab.Caption) + 16;
|
||||||
|
if (Tab.ImageIndex <> -1) and (Tab.GetImages <> nil) then
|
||||||
|
Inc(Result.cx, Tab.GetImages.Width + 2);
|
||||||
|
if Tab.TabBar.CloseButton then
|
||||||
|
Inc(Result.cx, 18);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Result := inherited GetTabSize(Canvas, Tab);
|
||||||
|
end;
|
||||||
|
Result.cy := Tab.TabBar.Height - 3;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvTabBarXPPainter.SetFixedTabSize(const Value: Integer);
|
||||||
|
begin
|
||||||
|
if Value <> FixedTabSize then
|
||||||
|
begin
|
||||||
|
FFixedTabSize := Value;
|
||||||
|
Changed;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
Reference in New Issue
Block a user