From 49b1d9176293bf4d0cc80fc494068c9a0188c7ec Mon Sep 17 00:00:00 2001 From: sekelsenmat Date: Fri, 28 Oct 2011 16:48:46 +0000 Subject: [PATCH] Adds the structure for TCDEdit git-svn-id: trunk@33141 - --- components/customdrawn/customdrawn_wince.pas | 22 +++ .../customdrawn/customdrawncontrols.pas | 127 +++++++++++++++++- 2 files changed, 148 insertions(+), 1 deletion(-) diff --git a/components/customdrawn/customdrawn_wince.pas b/components/customdrawn/customdrawn_wince.pas index 7abd188c93..8ff5f45ad5 100644 --- a/components/customdrawn/customdrawn_wince.pas +++ b/components/customdrawn/customdrawn_wince.pas @@ -24,6 +24,14 @@ type FState: TCDButtonState); override; end; + { TCDEditDrawerWinCE } + + TCDEditDrawerWinCE = class(TCDEditDrawer) + public + procedure DrawToIntfImage(ADest: TFPImageCanvas; CDEdit: TCDEdit); override; + procedure DrawToCanvas(ADest: TCanvas; CDEdit: TCDEdit); override; + end; + { TCDCheckBoxDrawerWinCE } TCDCheckBoxDrawerWinCE = class(TCDCheckBoxDrawer) @@ -69,6 +77,19 @@ type implementation +{ TCDEditDrawerWinCE } + +procedure TCDEditDrawerWinCE.DrawToIntfImage(ADest: TFPImageCanvas; + CDEdit: TCDEdit); +begin + +end; + +procedure TCDEditDrawerWinCE.DrawToCanvas(ADest: TCanvas; CDEdit: TCDEdit); +begin + +end; + { TCDCheckBoxDrawerWinCE } function TCDCheckBoxDrawerWinCE.GetCaptionWidth(CDCheckBox: TCDCheckBox @@ -642,6 +663,7 @@ end; initialization RegisterButtonDrawer(TCDButtonDrawerWinCE.Create, dsWinCE); + RegisterEditDrawer(TCDEditDrawerWinCE.Create, dsWinCE); RegisterGroupBoxDrawer(TCDGroupBoxDrawerWinCE.Create, dsWinCE); RegisterCheckBoxDrawer(TCDCheckBoxDrawerWinCE.Create, dsWinCE); RegisterCustomTabControlDrawer(TCDCustomTabControlDrawerWinCE.Create, dsWinCE); diff --git a/components/customdrawn/customdrawncontrols.pas b/components/customdrawn/customdrawncontrols.pas index 1726ebeffe..7f2f73c66a 100644 --- a/components/customdrawn/customdrawncontrols.pas +++ b/components/customdrawn/customdrawncontrols.pas @@ -153,6 +153,42 @@ type FState: TCDButtonState); virtual; abstract; end; + { TCDEdit } + + TCDEdit = class(TCDControl) + private + DragDropStarted: boolean; + // fields + procedure PrepareCurrentDrawer(); override; + protected + // keyboard + procedure DoEnter; override; + procedure DoExit; override; + procedure KeyDown(var Key: word; Shift: TShiftState); override; + procedure KeyUp(var Key: word; Shift: TShiftState); override; + // mouse + procedure MouseDown(Button: TMouseButton; Shift: TShiftState; + X, Y: integer); override; + procedure MouseMove(Shift: TShiftState; X, Y: integer); override; + procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: integer); override; + procedure MouseEnter; override; + procedure MouseLeave; override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure EraseBackground(DC: HDC); override; + procedure Paint; override; + published + property Color; + property TabStop default True; + end; + + TCDEditDrawer = class(TCDControlDrawer) + public + procedure DrawToIntfImage(ADest: TFPImageCanvas; CDEdit: TCDEdit); virtual; abstract; + procedure DrawToCanvas(ADest: TCanvas; CDEdit: TCDEdit); virtual; abstract; + end; + {@@ TCDGroupBox is a custom-drawn group box control } @@ -451,6 +487,7 @@ type // Standard Tab procedure RegisterButtonDrawer(ADrawer: TCDButtonDrawer; AStyle: TCDDrawStyle); +procedure RegisterEditDrawer(ADrawer: TCDEditDrawer; AStyle: TCDDrawStyle); procedure RegisterGroupBoxDrawer(ADrawer: TCDGroupBoxDrawer; AStyle: TCDDrawStyle); procedure RegisterCheckBoxDrawer(ADrawer: TCDCheckBoxDrawer; AStyle: TCDDrawStyle); // Common Controls Tab @@ -469,6 +506,8 @@ var // Standard Tab RegisteredButtonDrawers: array[TCDDrawStyle] of TCDButtonDrawer = (nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil); + RegisteredEditDrawers: array[TCDDrawStyle] of TCDEditDrawer + = (nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil); RegisteredGroupBoxDrawers: array[TCDDrawStyle] of TCDGroupBoxDrawer = (nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil); RegisteredCheckBoxDrawers: array[TCDDrawStyle] of TCDCheckBoxDrawer @@ -485,6 +524,12 @@ begin RegisteredButtonDrawers[AStyle] := ADrawer; end; +procedure RegisterEditDrawer(ADrawer: TCDEditDrawer; AStyle: TCDDrawStyle); +begin + if RegisteredEditDrawers[AStyle] <> nil then RegisteredEditDrawers[AStyle].Free; + RegisteredEditDrawers[AStyle] := ADrawer; +end; + procedure RegisterGroupBoxDrawer(ADrawer: TCDGroupBoxDrawer; AStyle: TCDDrawStyle); begin if RegisteredGroupBoxDrawers[AStyle] <> nil then RegisteredGroupBoxDrawers[AStyle].Free; @@ -509,6 +554,86 @@ begin RegisteredCustomTabControlDrawers[AStyle] := ADrawer; end; +{ TCDEdit } + +procedure TCDEdit.PrepareCurrentDrawer; +var + lDrawStyle: TCDDrawStyle; +begin + if DrawStyle = dsDefault then lDrawStyle := DefaultStyle + else lDrawStyle := DrawStyle; + FCurrentDrawer := RegisteredEditDrawers[lDrawStyle]; + if FCurrentDrawer = nil then FCurrentDrawer := RegisteredEditDrawers[dsWince]; + if FCurrentDrawer = nil then raise Exception.Create('No registered edit drawers were found'); +end; + +procedure TCDEdit.DoEnter; +begin + inherited DoEnter; +end; + +procedure TCDEdit.DoExit; +begin + inherited DoExit; +end; + +procedure TCDEdit.KeyDown(var Key: word; Shift: TShiftState); +begin + inherited KeyDown(Key, Shift); +end; + +procedure TCDEdit.KeyUp(var Key: word; Shift: TShiftState); +begin + inherited KeyUp(Key, Shift); +end; + +procedure TCDEdit.MouseDown(Button: TMouseButton; Shift: TShiftState; X, + Y: integer); +begin + inherited MouseDown(Button, Shift, X, Y); +end; + +procedure TCDEdit.MouseMove(Shift: TShiftState; X, Y: integer); +begin + inherited MouseMove(Shift, X, Y); +end; + +procedure TCDEdit.MouseUp(Button: TMouseButton; Shift: TShiftState; X, + Y: integer); +begin + inherited MouseUp(Button, Shift, X, Y); +end; + +procedure TCDEdit.MouseEnter; +begin + inherited MouseEnter; +end; + +procedure TCDEdit.MouseLeave; +begin + inherited MouseLeave; +end; + +constructor TCDEdit.Create(AOwner: TComponent); +begin + inherited Create(AOwner); +end; + +destructor TCDEdit.Destroy; +begin + inherited Destroy; +end; + +procedure TCDEdit.EraseBackground(DC: HDC); +begin + inherited EraseBackground(DC); +end; + +procedure TCDEdit.Paint; +begin + inherited Paint; +end; + { TCDCheckBox } procedure TCDCheckBox.PrepareCurrentDrawer; @@ -849,7 +974,7 @@ end; procedure TCDButtonControl.DoButtonUp(); begin - if FButtonState.IsDown then + if FButtonState.IsDown then begin FButtonState.IsDown := False; Invalidate;