View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003906 | JEDI VCL | 00 JVCL Components | public | 2006-09-14 09:35 | 2006-09-19 08:13 |
Reporter | ykami | Assigned To | obones | ||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | resolved | Resolution | fixed | ||
Product Version | Daily / GIT | ||||
Target Version | Fixed in Version | 3.30 | |||
Summary | 0003906: JVListView - Header Image is displayed at the right of the text. | ||||
Description | I want you to add the function to display header image at the right of the header text to JvListView. I implemented HeaderImagePosition property, based on Rev.10925. | ||||
Tags | No tags attached. | ||||
2006-09-14 09:35
|
JvListView.pas (84,373 bytes) |
|
Please provide a diff file, it makes it easier to integrate. |
2006-09-14 10:20
|
JvListView.patch (8,421 bytes)
*** Org\JvListView.pas Fri Sep 15 01:06:06 2006 --- JvListView.pas Fri Sep 15 00:16:42 2006 *************** *** 42,47 **** --- 42,48 ---- type TJvViewStyle = (vsIcon, vsSmallIcon, vsList, vsReport, vsTile); + TJvHeaderImagePosition = (hipLeft, hipRight); const WM_AUTOSELECT = WM_USER + 1; *************** *** 135,150 **** --- 136,158 ---- TJvListExtendedColumn = class(TCollectionItem) private + FHeaderImagePosition: TJvHeaderImagePosition; FSortMethod: TJvSortMethod; FUseParentSortMethod: Boolean; + FUseParentHeaderImagePosition: Boolean; function GetSortMethod: TJvSortMethod; procedure SetSortMethod(const Value: TJvSortMethod); + function GetHeaderImagePosition: TJvHeaderImagePosition; + procedure SetHeaderImagePosition(const Value: TJvHeaderImagePosition); + procedure SetUseParentHeaderImagePosition(const Value: Boolean); public constructor Create(Collection: Classes.TCollection); override; procedure Assign(AValue: TPersistent); override; published + property HeaderImagePosition: TJvHeaderImagePosition read GetHeaderImagePosition write SetHeaderImagePosition default hipLeft; property SortMethod: TJvSortMethod read GetSortMethod write SetSortMethod default smAutomatic; + property UseParentHeaderImagePosition : Boolean read FUseParentHeaderImagePosition write SetUseParentHeaderImagePosition default True; property UseParentSortMethod : Boolean read FUseParentSortMethod write FUseParentSortMethod default True; end; *************** *** 318,323 **** --- 326,332 ---- FOnHorizontalScroll: TNotifyEvent; FOnVerticalScroll: TNotifyEvent; FImageChangeLink: TChangeLink; + FHeaderImagePosition: TJvHeaderImagePosition; FHeaderImages: TCustomImageList; FAutoSelect: Boolean; FPicture: TPicture; *************** *** 332,337 **** --- 341,347 ---- FTileViewProperties: TJvTileViewProperties; FInsertMarkColor: TColor; FSettingJvViewStyle: Boolean; + FSettingHeaderImagePosition: Boolean; procedure DoPictureChange(Sender: TObject); procedure SetPicture(const Value: TPicture); procedure SetGroupView(const Value: Boolean); *************** *** 339,344 **** --- 349,355 ---- procedure SetGroupsProperties(const Value: TJvGroupsProperties); procedure SetTileViewProperties(const Value: TJvTileViewProperties); procedure SetInsertMarkColor(const Value: TColor); + procedure SetHeaderImagePosition(const Value: TJvHeaderImagePosition); procedure SetHeaderImages(const Value: TCustomImageList); procedure UpdateHeaderImages(HeaderHandle: Integer); procedure WMAutoSelect(var Msg: TMessage); message WM_AUTOSELECT; *************** *** 377,382 **** --- 388,394 ---- procedure WMNCCalcSize(var Msg: TWMNCCalcSize); message WM_NCCALCSIZE; procedure LVMDeleteColumn(var Msg: TMessage); message LVM_DELETECOLUMN; procedure LVMInsertColumn(var Msg: TMessage); message LVM_INSERTCOLUMN; + procedure LVMSetColumn(var Msg: TMessage); message LVM_SETCOLUMN; procedure InsertItem(Item: TListItem); override; function IsCustomDrawn(Target: TCustomDrawTarget; Stage: TCustomDrawStage): Boolean; {$IFDEF COMPILER6_UP} override; {$ENDIF} *************** *** 425,430 **** --- 437,443 ---- property ColumnsOrder: string read GetColumnsOrder write SetColumnsOrder; property HintColor; property Picture: TPicture read FPicture write SetPicture; + property HeaderImagePosition: TJvHeaderImagePosition read FHeaderImagePosition write SetHeaderImagePosition default hipLeft; property HeaderImages: TCustomImageList read FHeaderImages write SetHeaderImages; property SortMethod: TJvSortMethod read FSortMethod write FSortMethod default smAutomatic; property SortOnClick: Boolean read FSortOnClick write FSortOnClick default True; *************** *** 466,472 **** UnitVersioning: TUnitVersionInfo = ( RCSfile: '$URL: https://svn.sourceforge.net:443/svnroot/jvcl/trunk/jvcl/run/JvListView.pas $'; Revision: '$Revision: 10925 $'; ! Date: '$Date: 2006-09-01 17:49:37 +0900 (金, 01 9 2006) $'; LogPath: 'JVCL\run' ); {$ENDIF UNITVERSIONING} --- 479,485 ---- UnitVersioning: TUnitVersionInfo = ( RCSfile: '$URL: https://svn.sourceforge.net:443/svnroot/jvcl/trunk/jvcl/run/JvListView.pas $'; Revision: '$Revision: 10925 $'; ! Date: '$Date: 2006-09-01 17:49:37 +0900 (釁E 01 9 2006) $'; LogPath: 'JVCL\run' ); {$ENDIF UNITVERSIONING} *************** *** 846,851 **** --- 859,867 ---- begin FSortMethod := TJvListExtendedColumn(AValue). SortMethod; FUseParentSortMethod := TJvListExtendedColumn(AValue).UseParentSortMethod; + + FHeaderImagePosition := TJvListExtendedColumn(AValue).HeaderImagePosition; + FUseParentHeaderImagePosition := TJvListExtendedColumn(AValue).UseParentHeaderImagePosition; end else inherited Assign(AValue); *************** *** 857,862 **** --- 873,889 ---- FSortMethod := smAutomatic; FUseParentSortMethod := True; + + FHeaderImagePosition := hipLeft; + FUseParentHeaderImagePosition := True; + end; + + function TJvListExtendedColumn.GetHeaderImagePosition: TJvHeaderImagePosition; + begin + if (TJvListExtendedColumns(Collection).Owner is TJvListView) and UseParentHeaderImagePosition then + Result := TJvListView(TJvListExtendedColumns(Collection).Owner).HeaderImagePosition + else + Result := FHeaderImagePosition; end; function TJvListExtendedColumn.GetSortMethod: TJvSortMethod; *************** *** 867,872 **** --- 894,912 ---- Result := FSortMethod; end; + procedure TJvListExtendedColumn.SetHeaderImagePosition( + const Value: TJvHeaderImagePosition); + begin + FHeaderImagePosition := Value; + UseParentHeaderImagePosition := False; + + if (TJvListExtendedColumns(Collection).Owner is TJvListView) then + begin + TJvListView(TJvListExtendedColumns(Collection).Owner).DoHeaderImagesChange(Self); + end; + + end; + procedure TJvListExtendedColumn.SetSortMethod( const Value: TJvSortMethod); begin *************** *** 874,879 **** --- 914,932 ---- UseParentSortMethod := False; end; + procedure TJvListExtendedColumn.SetUseParentHeaderImagePosition( + const Value: Boolean); + begin + if FUseParentHeaderImagePosition <> Value then + begin + FUseParentHeaderImagePosition := Value; + if (TJvListExtendedColumns(Collection).Owner is TJvListView) then + begin + TJvListView(TJvListExtendedColumns(Collection).Owner).DoHeaderImagesChange(Self); + end; + end; + end; + { TJvListExtendedColumns } constructor TJvListExtendedColumns.Create(AOwner: TPersistent); *************** *** 926,931 **** --- 979,986 ---- FTileViewProperties.OnChange := TileViewPropertiesChange; FGroupsProperties.OnChange := GroupsPropertiesChange; + + FHeaderImagePosition := hipLeft; end; destructor TJvListView.Destroy; *************** *** 941,946 **** --- 996,1029 ---- inherited Destroy; end; + procedure TJvListView.LVMSetColumn(var Msg: TMessage); + var + i: Integer; + Column: tagLVCOLUMNA; + begin + inherited; + + if not FSettingHeaderImagePosition then + begin + for i := 0 to ExtendedColumns.Count - 1 do + begin + if ExtendedColumns[i].GetHeaderImagePosition = hipRight then + begin + Column.mask := LVCF_FMT; + ListView_GetColumn(Handle, i, Column); + if Column.fmt and LVCFMT_IMAGE <> 0 then + begin + Column.fmt := Column.fmt or LVCFMT_BITMAP_ON_RIGHT; + FSettingHeaderImagePosition := True; + ListView_SetColumn(Handle, i, Column); + FSettingHeaderImagePosition := False; + end; + end; + end; + end; + + end; + procedure TJvListView.WMHScroll(var Msg: TWMHScroll); begin inherited; *************** *** 1708,1713 **** --- 1791,1805 ---- ListView_SetColumnOrderArray(Columns.Owner.Handle, Columns.Count, @Res[0]); finally Free; + end; + end; + + procedure TJvListView.SetHeaderImagePosition(const Value: TJvHeaderImagePosition); + begin + if FHeaderImagePosition <> Value then + begin + FHeaderImagePosition := Value; + UpdateHeaderImages(ListView_GetHeader(Handle)); end; end; |
|
Sorry, I attached JvListView.patch. |
|
This is now in SVN (r10939) |
Date Modified | Username | Field | Change |
---|---|---|---|
2006-09-14 09:35 | ykami | New Issue | |
2006-09-14 09:35 | ykami | File Added: JvListView.pas | |
2006-09-14 10:09 | obones | Note Added: 0010123 | |
2006-09-14 10:09 | obones | Status | new => feedback |
2006-09-14 10:20 | ykami | File Added: JvListView.patch | |
2006-09-14 10:21 | ykami | Note Added: 0010126 | |
2006-09-19 08:13 | obones | Status | feedback => resolved |
2006-09-19 08:13 | obones | Fixed in Version | => Daily / SVN |
2006-09-19 08:13 | obones | Resolution | open => fixed |
2006-09-19 08:13 | obones | Assigned To | => obones |
2006-09-19 08:13 | obones | Note Added: 0010144 |