You've already forked lazarus-ccr
richmemo: win32 - making language options exposed as a set type for win32 only interface
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5288 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -177,6 +177,22 @@ function GetOleObject(ole: IRichEditOle; SelStart: Integer; out res: TREOBJECT):
|
||||
function SetOleObjectSize(ARichMemo: TCustomRichMemo; SelStart: Integer; const ASize: TSize): Boolean;
|
||||
function GetOleObjectSize(ARichMemo: TCustomRichMemo; SelStart: Integer; var ASize: TSize): Boolean;
|
||||
|
||||
type
|
||||
TWinLangOptions = set of (
|
||||
wloAutokeyboard // IMF_AUTOKEYBOARD = $0001
|
||||
, wloAutoFont // IMF_AUTOFONT = $0002
|
||||
, wloImeCancelComplete // IMF_IMECANCELCOMPLETE = $0004 // High completes comp string when aborting, low cancels
|
||||
, wloAlwaysSendNotify // IMF_IMEALWAYSSENDNOTIFY = $0008
|
||||
, wloAutoFontSizeAdjust // IMF_AUTOFONTSIZEADJUST = $0010
|
||||
, wloUOFonts // IMF_UIFONTS = $0020
|
||||
, wloDualFont // IMF_DUALFONT = $0080
|
||||
);
|
||||
|
||||
function GetLangOptions(hnd: THandle): TWinLangOptions; overload;
|
||||
function GetLangOptions(rm: TCustomRichMemo): TWinLangOptions; overload;
|
||||
procedure SetLangOptions(hnd: THandle; const opts: TWinLangOptions); overload;
|
||||
procedure SetLangOptions(rm: TCustomRichMemo; const opts: TWinLangOptions); overload;
|
||||
|
||||
implementation
|
||||
|
||||
const
|
||||
@ -1640,6 +1656,42 @@ begin
|
||||
ASize.cy:=round(res.sizel.cy*RevSizeFactor);
|
||||
end;
|
||||
|
||||
function GetLangOptions(hnd: THandle): TWinLangOptions;
|
||||
var
|
||||
r: LRESULT;
|
||||
begin
|
||||
r:=SendMessage(hnd, EM_GETLANGOPTIONS, 0, 0);
|
||||
Result:=TWinLangOptions(r);
|
||||
end;
|
||||
|
||||
function GetLangOptions(rm: TCustomRichMemo): TWinLangOptions;
|
||||
begin
|
||||
if Assigned(rm) then begin
|
||||
if not rm.HandleAllocated then rm.HandleNeeded;
|
||||
if rm.HandleAllocated
|
||||
then Result:=GetLangOptions(rm.Handle)
|
||||
else Result:=[];
|
||||
end else
|
||||
Result:=[];
|
||||
end;
|
||||
|
||||
procedure SetLangOptions(hnd: THandle; const opts: TWinLangOptions); overload;
|
||||
var
|
||||
lp : LPARAM;
|
||||
begin
|
||||
lp:=LPARAM(opts);
|
||||
SendMessage(hnd, EM_SETLANGOPTIONS, 0, lp);
|
||||
end;
|
||||
|
||||
procedure SetLangOptions(rm: TCustomRichMemo; const opts: TWinLangOptions); overload;
|
||||
begin
|
||||
if Assigned(rm) then begin
|
||||
if not rm.HandleAllocated then rm.HandleNeeded;
|
||||
if rm.HandleAllocated then
|
||||
SetLangOptions(rm.Handle, opts);
|
||||
end;
|
||||
end;
|
||||
|
||||
initialization
|
||||
NCPaint := @ThemedNCPaint;
|
||||
AllocOLEObject := @DefAllocOleObject;
|
||||
|
Reference in New Issue
Block a user