From: Olivier S. <ob...@us...> - 2003-10-19 12:15:42
|
Update of /cvsroot/jvcl/dev/JVCL3/examples/JvRichEdit In directory sc8-pr-cvs1:/tmp/cvs-serv21675/dev/JVCL3/examples/JvRichEdit Modified Files: EditorMainFormU.pas Log Message: Now does owner drawing for the two color menus, but shows an example of calling a specialized painter from a JvOwnerDrawPainter call to OnDrawItem Index: EditorMainFormU.pas =================================================================== RCS file: /cvsroot/jvcl/dev/JVCL3/examples/JvRichEdit/EditorMainFormU.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** EditorMainFormU.pas 17 Oct 2003 22:11:54 -0000 1.1 --- EditorMainFormU.pas 19 Oct 2003 06:55:44 -0000 1.2 *************** *** 158,162 **** --- 158,167 ---- procedure EditSelectAll(Sender: TObject); procedure FileSaveSelected(Sender: TObject); + procedure ColorMenuMeasureItem(Sender: TMenu; Item: TMenuItem; + var Width, Height: Integer); private + FXpColorItemPainter : TJvXpMenuItemPainter; + FXpBackColorItemPainter : TJvXpMenuItemPainter; + FFileName: string; FUpdating: Boolean; *************** *** 324,334 **** end; procedure TEditorMainForm.ColorMenuDrawItem(Sender: TMenu; Item: TMenuItem; Rect: TRect; State: TMenuOwnerDrawState); begin ! TJvPopupMenu(Sender).DefaultDrawItem(Item, Rect, State); ! Inc(Rect.Left, LoWord(GetMenuCheckMarkDimensions) + 6); ! Rect.Right := Rect.Left + 20; ! InflateRect(Rect, 0, -3); with TJvPopupMenu(Sender).Canvas do begin --- 329,355 ---- end; + procedure TEditorMainForm.ColorMenuMeasureItem(Sender: TMenu; + Item: TMenuItem; var Width, Height: Integer); + begin + if Sender = ColorMenu then + FXpColorItemPainter.Measure(Item, Width, Height) + else + FXpBackColorItemPainter.Measure(Item, Width, Height); + end; + procedure TEditorMainForm.ColorMenuDrawItem(Sender: TMenu; Item: TMenuItem; Rect: TRect; State: TMenuOwnerDrawState); begin ! // make xp painter paint the item ! if Sender = ColorMenu then ! FXpColorItemPainter.Paint(Item, Rect, State) ! else ! FXpBackColorItemPainter.Paint(Item, Rect, State); ! ! // add our colored square ! Rect.Left := Rect.Left + 2; ! Rect.Right := Rect.Left + 18; ! Rect.Top := Rect.Top + 4; ! Rect.Bottom := Rect.Top + 18; with TJvPopupMenu(Sender).Canvas do begin *************** *** 621,624 **** --- 642,648 ---- SPictureFilter = '%s|%s|%s|%s'; begin + FXpColorItemPainter := TJvXpMenuItemPainter.Create(ColorMenu); + FXpBackColorItemPainter := TJvXpMenuItemPainter.Create(BackgroundMenu); + OpenDialog.InitialDir := ExtractFilePath(ParamStr(0)); SaveDialog.InitialDir := OpenDialog.InitialDir; *************** *** 673,676 **** --- 697,702 ---- procedure TEditorMainForm.FormDestroy(Sender: TObject); begin + FXpColorItemPainter.Free; + FXpBackColorItemPainter.Free; { remove ourselves from the viewer chain } FClipboardMonitor.Free; |