lazarus/lcl/interfaces/qt/qtprivate.pp
mattias b1754ccbad qt4 TBitmap, TComboBox from Felipe
git-svn-id: trunk@8952 -
2006-03-18 00:19:11 +00:00

1734 lines
52 KiB
ObjectPascal
Raw Blame History

{
*****************************************************************************
* QtPrivate.pp *
* -------------- *
* *
* *
*****************************************************************************
*****************************************************************************
* *
* This file is part of the Lazarus Component Library (LCL) *
* *
* See the file COPYING.LCL, included in this distribution, *
* for details about the copyright. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* *
*****************************************************************************
}
unit qtprivate;
{$mode delphi}{$H+}
interface
uses
// Bindings
qt4,
// Free Pascal
Classes, SysUtils,
// LCL
LMessages, Forms, Controls, LCLType, ExtCtrls, StdCtrls;
type
{ TQtWidget }
TQtWidget = class(TObject)
private
function QtKeyToLCLKey(key: Integer): Word;
public
Widget: QWidgetH;
LCLObject: TWinControl;
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); virtual;
destructor Destroy; override;
public
function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; virtual;
procedure SlotShow(vShow: Boolean); cdecl;
procedure SlotDestroy; cdecl;
procedure SlotFocus(FocusIn: Boolean); cdecl;
procedure SlotKey(Event: QEventH); cdecl;
procedure SlotMouse(Event: QEventH); cdecl;
procedure SlotPaint(Event: QEventH); cdecl;
end;
{ TQtAbstractButton }
TQtAbstractButton = class(TQtWidget)
private
public
procedure SetText(text: PWideString);
procedure Text(retval: PWideString);
function isChecked: Boolean;
procedure setChecked(p1: Boolean);
end;
{ TQtPushButton }
TQtPushButton = class(TQtAbstractButton)
private
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
procedure SlotClicked; cdecl;
end;
{ TQtBrush }
TQtBrush = class(QBrushH)
private
public
Widget: QBrushH;
public
constructor Create; virtual;
destructor Destroy; override;
end;
{ TQtDeviceContext }
TQtDeviceContext = class(TObject)
private
public
Widget: QPainterH;
Brush: TQtBrush;
public
public
constructor Create(WidgetHandle: HWND); virtual;
destructor Destroy; override;
public
procedure drawRect(x1: Integer; y1: Integer; w: Integer; h: Integer);
procedure drawText(x: Integer; y: Integer; s: PWideString);
end;
{ TQtMainWindow }
TQtMainWindow = class(TQtWidget)
private
public
Splitter : QSplitterH;
public
Canvas: TQtDeviceContext;
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
end;
{ TQtStaticText }
TQtStaticText = class(TQtWidget)
private
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
procedure SetText(text: PWideString);
procedure Text(retval: PWideString);
end;
{ TQtTimer }
TQtTimer = class(TQtWidget)
private
CallbackFunc: TFNTimerProc;
Id: Integer;
AppObject: QObjectH;
public
constructor CreateTimer(Interval: integer; const TimerFunc: TFNTimerProc; App: QObjectH); virtual;
destructor Destroy; override;
function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; override;
end;
{ TQtCheckBox }
TQtCheckBox = class(TQtAbstractButton)
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; override;
function CheckState: QtCheckState;
procedure setCheckState(state: QtCheckState);
end;
{ TQtRadioButton }
TQtRadioButton = class(TQtAbstractButton)
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; override;
end;
{ TQtGroupBox }
TQtGroupBox = class(TQtWidget)
private
VBoxLayout: QVBoxLayoutH;
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
end;
{ TQtFrame }
TQtFrame = class(TQtWidget)
private
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
procedure setFrameStyle(p1: Integer);
procedure setFrameShape(p1: QFrameShape);
procedure setFrameShadow(p1: QFrameShadow);
end;
{ TQtLineEdit }
TQtLineEdit = class(TQtWidget)
private
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
end;
{ TQtTextEdit }
TQtTextEdit = class(TQtWidget)
private
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
end;
{ TQtTabWidget }
TQtTabWidget = class(TQtWidget)
private
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
function insertTab(index: Integer; page: QWidgetH; p2: PWideString): Integer;
end;
{ TQtComboBox }
TQtComboBox = class(TQtWidget)
private
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
function currentIndex: Integer;
procedure setCurrentIndex(index: Integer);
end;
{ TQtSpinBox }
TQtSpinBox = class(TQtWidget)
private
public
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
destructor Destroy; override;
end;
implementation
{ TQtWidget }
constructor TQtWidget.Create(const AWinControl: TWinControl;
const AParams: TCreateParams);
var
Parent: QWidgetH;
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QWidget_create');
{$endif}
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Widget := QWidget_create(Parent);
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
end;
destructor TQtWidget.Destroy;
begin
{$ifdef VerboseQt}
// WriteLn('Calling QWidget_destroy');
{$endif}
// QWidget_destroy(QWidgetH(Widget));
inherited Destroy;
end;
{------------------------------------------------------------------------------
Function: TQtWidget.EventFilter
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
function TQtWidget.EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
begin
Result := False;
// WriteLn(Integer(QEvent_type(Event)));
QEvent_ignore(Event);
case QEvent_type(Event) of
QEventShow: SlotShow(True);
QEventHide: SlotShow(False);
QEventDestroy: SlotDestroy;
QEventFocusIn: SlotFocus(True);
QEventFocusOut: SlotFocus(False);
// WINDOWPOSCHANGED: SlotDestroy;
QEventKeyPress: SlotKey(Event);
QEventKeyRelease: SlotKey(Event);
QEventMouseButtonPress: SlotMouse(Event);
QEventMouseButtonRelease: SlotMouse(Event);
QEventMouseButtonDblClick: SlotMouse(Event);
QEventMouseMove: SlotMouse(Event);
QEventPaint: SlotPaint(Event);
end;
{ GtkWidgetSet.SetCallback(, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_WINDOWPOSCHANGED, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_PAINT, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_EXPOSEEVENT, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_KEYDOWN, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_KEYUP, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_CHAR, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_MOUSEMOVE, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_LBUTTONDOWN, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_LBUTTONUP, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_RBUTTONDOWN, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_RBUTTONUP, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_MBUTTONDOWN, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_MBUTTONUP, AGTKObject, AComponent);
GtkWidgetSet.SetCallback(LM_MOUSEWHEEL, AGTKObject, AComponent);}
end;
{------------------------------------------------------------------------------
Function: TQtWidget.SlotShow
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtWidget.SlotShow(vShow: Boolean); cdecl;
var
Msg: TLMShowWindow;
begin
FillChar(Msg, SizeOf(Msg), #0);
Msg.Msg := LM_SHOWWINDOW;
Msg.Show := vShow;
try
LCLObject.WindowProc(TLMessage(Msg));
except
Application.HandleException(nil);
end;
end;
{------------------------------------------------------------------------------
Function: TQtWidget.SlotDestroy
Params: None
Returns: Nothing
Currently commented because it was raising exception on software exit
------------------------------------------------------------------------------}
procedure TQtWidget.SlotDestroy; cdecl;
begin
{ FillChar(Msg, SizeOf(Msg), #0);
Msg.Msg := LM_DESTROY;
try
LCLObject.WindowProc(TLMessage(Msg));
except
Application.HandleException(nil);
end;}
end;
{------------------------------------------------------------------------------
Function: TQtWidget.SlotFocus
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtWidget.SlotFocus(FocusIn: Boolean); cdecl;
var
Msg: TLMessage;
begin
FillChar(Msg, SizeOf(Msg), #0);
if FocusIn then Msg.Msg := LM_SETFOCUS
else Msg.Msg := LM_KILLFOCUS;
try
LCLObject.WindowProc(TLMessage(Msg));
except
Application.HandleException(nil);
end;
end;
{------------------------------------------------------------------------------
Function: TQtWidget.SlotKey
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtWidget.SlotKey(Event: QEventH); cdecl;
var
Msg: TLMKey;
begin
WriteLn('SlotKey');
FillChar(Msg, SizeOf(Msg), #0);
if QEvent_type(Event) = QEventKeyRelease then Msg.Msg := LM_KEYUP
else Msg.Msg := LM_KEYDOWN;
{------------------------------------------------------------------------------
Translates a Qt4 Key to a LCL VK_ key
------------------------------------------------------------------------------}
Msg.CharCode := QtKeyToLCLKey(QKeyEvent_key(QKeyEventH(Event)));
try
LCLObject.WindowProc(TLMessage(Msg));
except
Application.HandleException(nil);
end;
//LM_KEYDOWN
//LM_KEYUP
// LM_CHAR
end;
{------------------------------------------------------------------------------
Function: TQtWidget.SlotMouse
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtWidget.SlotMouse(Event: QEventH); cdecl;
begin
end;
{------------------------------------------------------------------------------
Function: TQtWidget.SlotPaint
Params: None
Returns: Nothing
Sends a LM_PAINT message to the LCL. This is for custom painted controls only
------------------------------------------------------------------------------}
procedure TQtWidget.SlotPaint(Event: QEventH); cdecl;
var
Msg: TLMessage;
begin
if (LCLObject is TCustomControl) or (LCLObject is TCustomForm) then
begin
FillChar(Msg, SizeOf(Msg), #0);
Msg.Msg := LM_PAINT;
try
LCLObject.WindowProc(TLMessage(Msg));
except
Application.HandleException(nil);
end;
end;
end;
{------------------------------------------------------------------------------
Function: TQtWidget.QtKeyToLCLKey
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
function TQtWidget.QtKeyToLCLKey(key: Integer): Word;
begin
case key of
QtKey_Escape: Result := VK_ESCAPE;
QtKey_Tab: Result := VK_TAB;
// QtKey_Backtab = 16777218 { $1000002 }; ????
// QtKey_Backspace = 16777219 { $1000003 };
QtKey_Return: Result := VK_RETURN;
QtKey_Enter: Result := VK_RETURN;
QtKey_Insert: Result := VK_RETURN;
QtKey_Delete: Result := VK_RETURN;
QtKey_Pause: Result := VK_PAUSE;
QtKey_Print: Result := VK_PRINT;
// QtKey_SysReq = 16777226 { $100000a };
// QtKey_Clear = 16777227 { $100000b };
QtKey_Home: Result := VK_HOME;
QtKey_End: Result := VK_END;
QtKey_Left: Result := VK_LEFT;
QtKey_Up: Result := VK_UP;
QtKey_Right: Result := VK_RIGHT;
QtKey_Down: Result := VK_DOWN;
QtKey_PageUp: Result := VK_PRIOR;
QtKey_PageDown: Result := VK_NEXT;
QtKey_Shift: Result := VK_LSHIFT; // There is also RSHIFT
QtKey_Control: Result := VK_LCONTROL; // There is also RCONTROL
{ QtKey_Meta: Result := VK_META;
QtKey_Alt: Result := VK_ALT;
QtKey_CapsLock: Result := VK_CAPSLOCK;
QtKey_NumLock: Result := VK_NUMLOCK;
QtKey_ScrollLock = 16777254 $1000026 ;}
QtKey_F1: Result := VK_F1;
QtKey_F2: Result := VK_F2;
QtKey_F3: Result := VK_F3;
QtKey_F4: Result := VK_F4;
QtKey_F5: Result := VK_F5;
QtKey_F6: Result := VK_F6;
QtKey_F7: Result := VK_F7;
QtKey_F8: Result := VK_F8;
QtKey_F9: Result := VK_F9;
QtKey_F10: Result := VK_F10;
QtKey_F11: Result := VK_F11;
QtKey_F12: Result := VK_F12;
QtKey_F13: Result := VK_F13;
QtKey_F14: Result := VK_F14;
QtKey_F15: Result := VK_F15;
QtKey_F16: Result := VK_F16;
QtKey_F17: Result := VK_F17;
QtKey_F18: Result := VK_F18;
QtKey_F19: Result := VK_F19;
QtKey_F20: Result := VK_F20;
QtKey_F21: Result := VK_F21;
QtKey_F22: Result := VK_F22;
QtKey_F23: Result := VK_F23;
QtKey_F24: Result := VK_F24;
{ QtKey_F25 = 16777288 $1000048 ;
QtKey_F26 = 16777289 $1000049 ;
QtKey_F27 = 16777290 $100004a ;
QtKey_F28 = 16777291 $100004b ;
QtKey_F29 = 16777292 $100004c ;
QtKey_F30 = 16777293 $100004d ;
QtKey_F31 = 16777294 $100004e ;
QtKey_F32 = 16777295 $100004f ;
QtKey_F33 = 16777296 $1000050 ;
QtKey_F34 = 16777297 $1000051 ;
QtKey_F35 = 16777298 $1000052 ;}
(* QtKey_Super_L = 16777299 { $1000053 };
QtKey_Super_R = 16777300 { $1000054 };
QtKey_Menu = 16777301 { $1000055 };
QtKey_Hyper_L = 16777302 { $1000056 };
QtKey_Hyper_R = 16777303 { $1000057 };
QtKey_Help = 16777304 { $1000058 };
QtKey_Direction_L = 16777305 { $1000059 };
QtKey_Direction_R = 16777312 { $1000060 };
QtKey_Space = 32 { $20 };
QtKey_Any = 32 { $20 };
QtKey_Exclam = 33 { $21 };
QtKey_QuoteDbl = 34 { $22 };
QtKey_NumberSign = 35 { $23 };
QtKey_Dollar = 36 { $24 };
QtKey_Percent = 37 { $25 };
QtKey_Ampersand = 38 { $26 };
QtKey_Apostrophe = 39 { $27 };
QtKey_ParenLeft = 40 { $28 };
QtKey_ParenRight = 41 { $29 };
QtKey_Asterisk = 42 { $2a };
QtKey_Plus = 43 { $2b };
QtKey_Comma = 44 { $2c };
QtKey_Minus = 45 { $2d };
QtKey_Period = 46 { $2e };
QtKey_Slash = 47 { $2f };*)
QtKey_0: Result := VK_0;
QtKey_1: Result := VK_1;
QtKey_2: Result := VK_2;
QtKey_3: Result := VK_3;
QtKey_4: Result := VK_4;
QtKey_5: Result := VK_5;
QtKey_6: Result := VK_6;
QtKey_7: Result := VK_7;
QtKey_8: Result := VK_8;
QtKey_9: Result := VK_9;
// QtKey_Colon = 58 { $3a };
// QtKey_Semicolon = 59 { $3b };
// QtKey_Less = 60 { $3c };
// QtKey_Equal = 61 { $3d };
// QtKey_Greater = 62 { $3e };
// QtKey_Question = 63 { $3f };
// QtKey_At = 64 { $40 };
QtKey_A: Result := VK_A;
QtKey_B: Result := VK_B;
QtKey_C: Result := VK_C;
QtKey_D: Result := VK_D;
QtKey_E: Result := VK_E;
QtKey_F: Result := VK_F;
QtKey_G: Result := VK_G;
QtKey_H: Result := VK_H;
QtKey_I: Result := VK_I;
QtKey_J: Result := VK_J;
QtKey_K: Result := VK_K;
QtKey_L: Result := VK_L;
QtKey_M: Result := VK_M;
QtKey_N: Result := VK_N;
QtKey_O: Result := VK_O;
QtKey_P: Result := VK_P;
QtKey_Q: Result := VK_Q;
QtKey_R: Result := VK_R;
QtKey_S: Result := VK_S;
QtKey_T: Result := VK_T;
QtKey_U: Result := VK_U;
QtKey_V: Result := VK_V;
QtKey_W: Result := VK_W;
QtKey_X: Result := VK_X;
QtKey_Y: Result := VK_Y;
QtKey_Z: Result := VK_Z;
(* QtKey_BracketLeft = 91 { $5b };
QtKey_Backslash = 92 { $5c };
QtKey_BracketRight = 93 { $5d };
QtKey_AsciiCircum = 94 { $5e };
QtKey_Underscore = 95 { $5f };
QtKey_QuoteLeft = 96 { $60 };
QtKey_BraceLeft = 123 { $7b };
QtKey_Bar = 124 { $7c };
QtKey_BraceRight = 125 { $7d };
QtKey_AsciiTilde = 126 { $7e };
QtKey_nobreakspace = 160 { $a0 };
QtKey_exclamdown = 161 { $a1 };
QtKey_cent = 162 { $a2 };
QtKey_sterling = 163 { $a3 };
QtKey_currency = 164 { $a4 };
QtKey_yen = 165 { $a5 };
QtKey_brokenbar = 166 { $a6 };
QtKey_section = 167 { $a7 };
QtKey_diaeresis = 168 { $a8 };
QtKey_copyright = 169 { $a9 };
QtKey_ordfeminine = 170 { $aa };
QtKey_guillemotleft = 171 { $ab };
QtKey_notsign = 172 { $ac };
QtKey_hyphen = 173 { $ad };
QtKey_registered = 174 { $ae };
QtKey_macron = 175 { $af };
QtKey_degree = 176 { $b0 };
QtKey_plusminus = 177 { $b1 };
QtKey_twosuperior = 178 { $b2 };
QtKey_threesuperior = 179 { $b3 };
QtKey_acute = 180 { $b4 };
QtKey_mu = 181 { $b5 };
QtKey_paragraph = 182 { $b6 };
QtKey_periodcentered = 183 { $b7 };
QtKey_cedilla = 184 { $b8 };
QtKey_onesuperior = 185 { $b9 };
QtKey_masculine = 186 { $ba };
QtKey_guillemotright = 187 { $bb };
QtKey_onequarter = 188 { $bc };
QtKey_onehalf = 189 { $bd };
QtKey_threequarters = 190 { $be };
QtKey_questiondown = 191 { $bf };
QtKey_Agrave = 192 { $c0 };
QtKey_Aacute = 193 { $c1 };
QtKey_Acircumflex = 194 { $c2 };
QtKey_Atilde = 195 { $c3 };
QtKey_Adiaeresis = 196 { $c4 };
QtKey_Aring = 197 { $c5 };
QtKey_AE = 198 { $c6 };
QtKey_Ccedilla = 199 { $c7 };
QtKey_Egrave = 200 { $c8 };
QtKey_Eacute = 201 { $c9 };
QtKey_Ecircumflex = 202 { $ca };
QtKey_Ediaeresis = 203 { $cb };
QtKey_Igrave = 204 { $cc };
QtKey_Iacute = 205 { $cd };
QtKey_Icircumflex = 206 { $ce };
QtKey_Idiaeresis = 207 { $cf };
QtKey_ETH = 208 { $d0 };
QtKey_Ntilde = 209 { $d1 };
QtKey_Ograve = 210 { $d2 };
QtKey_Oacute = 211 { $d3 };
QtKey_Ocircumflex = 212 { $d4 };
QtKey_Otilde = 213 { $d5 };
QtKey_Odiaeresis = 214 { $d6 };
QtKey_multiply = 215 { $d7 };
QtKey_Ooblique = 216 { $d8 };
QtKey_Ugrave = 217 { $d9 };
QtKey_Uacute = 218 { $da };
QtKey_Ucircumflex = 219 { $db };
QtKey_Udiaeresis = 220 { $dc };
QtKey_Yacute = 221 { $dd };
QtKey_THORN = 222 { $de };
QtKey_ssharp = 223 { $df };
QtKey_division = 247 { $f7 };
QtKey_ydiaeresis = 255 { $ff };
QtKey_Multi_key = 16781600 { $1001120 };
QtKey_Codeinput = 16781623 { $1001137 };
QtKey_SingleCandidate = 16781628 { $100113c };
QtKey_MultipleCandidate = 16781629 { $100113d };
QtKey_PreviousCandidate = 16781630 { $100113e };
QtKey_Mode_switch = 16781694 { $100117e };
QtKey_Kanji = 16781601 { $1001121 };
QtKey_Muhenkan = 16781602 { $1001122 };
QtKey_Henkan = 16781603 { $1001123 };
QtKey_Romaji = 16781604 { $1001124 };
QtKey_Hiragana = 16781605 { $1001125 };
QtKey_Katakana = 16781606 { $1001126 };
QtKey_Hiragana_Katakana = 16781607 { $1001127 };
QtKey_Zenkaku = 16781608 { $1001128 };
QtKey_Hankaku = 16781609 { $1001129 };
QtKey_Zenkaku_Hankaku = 16781610 { $100112a };
QtKey_Touroku = 16781611 { $100112b };
QtKey_Massyo = 16781612 { $100112c };
QtKey_Kana_Lock = 16781613 { $100112d };
QtKey_Kana_Shift = 16781614 { $100112e };
QtKey_Eisu_Shift = 16781615 { $100112f };
QtKey_Eisu_toggle = 16781616 { $1001130 };
QtKey_Hangul = 16781617 { $1001131 };
QtKey_Hangul_Start = 16781618 { $1001132 };
QtKey_Hangul_End = 16781619 { $1001133 };
QtKey_Hangul_Hanja = 16781620 { $1001134 };
QtKey_Hangul_Jamo = 16781621 { $1001135 };
QtKey_Hangul_Romaja = 16781622 { $1001136 };
QtKey_Hangul_Jeonja = 16781624 { $1001138 };
QtKey_Hangul_Banja = 16781625 { $1001139 };
QtKey_Hangul_PreHanja = 16781626 { $100113a };
QtKey_Hangul_PostHanja = 16781627 { $100113b };
QtKey_Hangul_Special = 16781631 { $100113f };
QtKey_Dead_Grave = 16781904 { $1001250 };
QtKey_Dead_Acute = 16781905 { $1001251 };
QtKey_Dead_Circumflex = 16781906 { $1001252 };
QtKey_Dead_Tilde = 16781907 { $1001253 };
QtKey_Dead_Macron = 16781908 { $1001254 };
QtKey_Dead_Breve = 16781909 { $1001255 };
QtKey_Dead_Abovedot = 16781910 { $1001256 };
QtKey_Dead_Diaeresis = 16781911 { $1001257 };
QtKey_Dead_Abovering = 16781912 { $1001258 };
QtKey_Dead_Doubleacute = 16781913 { $1001259 };
QtKey_Dead_Caron = 16781914 { $100125a };
QtKey_Dead_Cedilla = 16781915 { $100125b };
QtKey_Dead_Ogonek = 16781916 { $100125c };
QtKey_Dead_Iota = 16781917 { $100125d };
QtKey_Dead_Voiced_Sound = 16781918 { $100125e };
QtKey_Dead_Semivoiced_Sound = 16781919 { $100125f };
QtKey_Dead_Belowdot = 16781920 { $1001260 };
QtKey_Dead_Hook = 16781921 { $1001261 };
QtKey_Dead_Horn = 16781922 { $1001262 };
QtKey_Back = 16777313 { $1000061 };
QtKey_Forward = 16777314 { $1000062 };
QtKey_Stop = 16777315 { $1000063 };
QtKey_Refresh = 16777316 { $1000064 };
QtKey_VolumeDown = 16777328 { $1000070 };
QtKey_VolumeMute = 16777329 { $1000071 };
QtKey_VolumeUp = 16777330 { $1000072 };
QtKey_BassBoost = 16777331 { $1000073 };
QtKey_BassUp = 16777332 { $1000074 };
QtKey_BassDown = 16777333 { $1000075 };
QtKey_TrebleUp = 16777334 { $1000076 };
QtKey_TrebleDown = 16777335 { $1000077 };
QtKey_MediaPlay = 16777344 { $1000080 };
QtKey_MediaStop = 16777345 { $1000081 };
QtKey_MediaPrevious = 16777346 { $1000082 };
QtKey_MediaNext = 16777347 { $1000083 };
QtKey_MediaRecord = 16777348 { $1000084 };
QtKey_HomePage = 16777360 { $1000090 };
QtKey_Favorites = 16777361 { $1000091 };
QtKey_Search = 16777362 { $1000092 };
QtKey_Standby = 16777363 { $1000093 };
QtKey_OpenUrl = 16777364 { $1000094 };
QtKey_LaunchMail = 16777376 { $10000a0 };
QtKey_LaunchMedia = 16777377 { $10000a1 };
QtKey_Launch0 = 16777378 { $10000a2 };
QtKey_Launch1 = 16777379 { $10000a3 };
QtKey_Launch2 = 16777380 { $10000a4 };
QtKey_Launch3 = 16777381 { $10000a5 };
QtKey_Launch4 = 16777382 { $10000a6 };
QtKey_Launch5 = 16777383 { $10000a7 };
QtKey_Launch6 = 16777384 { $10000a8 };
QtKey_Launch7 = 16777385 { $10000a9 };
QtKey_Launch8 = 16777386 { $10000aa };
QtKey_Launch9 = 16777387 { $10000ab };
QtKey_LaunchA = 16777388 { $10000ac };
QtKey_LaunchB = 16777389 { $10000ad };
QtKey_LaunchC = 16777390 { $10000ae };
QtKey_LaunchD = 16777391 { $10000af };
QtKey_LaunchE = 16777392 { $10000b0 };
QtKey_LaunchF = 16777393 { $10000b1 };
QtKey_MediaLast = 16842751 { $100ffff };
QtKey_unknown = 33554431 { $1ffffff };*)
else
Result := VK_UNKNOWN;
end;
end;
{ TQtAbstractButton }
{------------------------------------------------------------------------------
Function: TQtAbstractButton.SetText
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtAbstractButton.SetText(text: PWideString);
begin
QAbstractButton_setText(QAbstractButtonH(Widget), text);
end;
{------------------------------------------------------------------------------
Function: TQtAbstractButton.Text
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtAbstractButton.Text(retval: PWideString);
begin
QAbstractButton_text(QAbstractButtonH(Widget), retval);
end;
{------------------------------------------------------------------------------
Function: TQtAbstractButton.isChecked
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
function TQtAbstractButton.isChecked: Boolean;
begin
Result := QAbstractButton_isChecked(QAbstractButtonH(Widget));
end;
{------------------------------------------------------------------------------
Function: TQtAbstractButton.setChecked
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtAbstractButton.setChecked(p1: Boolean);
begin
QAbstractButton_setChecked(QAbstractButtonH(Widget), p1);
end;
{ TQtPushButton }
{------------------------------------------------------------------------------
Function: TQtPushButton.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtPushButton.Create(const AWinControl: TWinControl; const AParams: TCreateParams);
var
Str: WideString;
Parent: QWidgetH;
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QPushButton_create');
{$endif}
Str := WideString(AWinControl.Caption);
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Widget := QPushButton_create(@Str, Parent);
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
end;
{------------------------------------------------------------------------------
Function: TQtPushButton.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtPushButton.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QPushButton_destroy');
{$endif}
QPushButton_destroy(QPushButtonH(Widget));
inherited Destroy;
end;
{------------------------------------------------------------------------------
Function: TQtPushButton.SlotClicked
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtPushButton.SlotClicked; cdecl;
var
Msg: TLMessage;
begin
Msg.Msg := LM_CLICKED;
try
LCLObject.WindowProc(TLMessage(Msg));
except
Application.HandleException(nil);
end;
{ if (TLMessage(AMessage).Msg=LM_PAINT)
or (TLMessage(AMessage).Msg=LM_INTERNALPAINT)
or (TLMessage(AMessage).Msg=LM_GtkPaint) then
CurrentSentPaintMessageTarget:=TObject(Target);
try
if TObject(Target) is TControl
then TControl(Target).WindowProc(TLMessage(Msg))
else TObject(Target).Dispatch(TLMessage(Msg));
except
Application.HandleException(nil);
end;
CurrentSentPaintMessageTarget:=nil;}
end;
{ TQtDeviceContext }
{------------------------------------------------------------------------------
Function: TQtDeviceContext.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtDeviceContext.Create(WidgetHandle: HWND);
var
parent: QWidgetH;
begin
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QPainter_create');
{$endif}
if WidgetHandle = 0 then Widget := QPainter_create
else
begin
Parent := TQtMainWindow(WidgetHandle).Widget;
Widget := QPainter_create(QWidget_to_QPaintDevice(Parent));
end;
// Creates the Brush
Brush := TQtBrush.Create;
end;
{------------------------------------------------------------------------------
Function: TQtDeviceContext.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtDeviceContext.Destroy;
begin
Brush.Free;
{$ifdef VerboseQt}
WriteLn('Calling QPainter_destroy');
{$endif}
QPainter_destroy(Widget);
inherited Destroy;
end;
{------------------------------------------------------------------------------
Function: TQtDeviceContext.drawRect
Params: None
Returns: Nothing
Draws a rectangle. Helper function of winapi.Rectangle
------------------------------------------------------------------------------}
procedure TQtDeviceContext.drawRect(x1: Integer; y1: Integer; w: Integer; h: Integer);
begin
QPainter_drawRect(Widget, x1, y1, w, h);
end;
{------------------------------------------------------------------------------
Function: TQtDeviceContext.drawText
Params: None
Returns: Nothing
Draws a Text. Helper function of winapi.TextOut
------------------------------------------------------------------------------}
procedure TQtDeviceContext.drawText(x: Integer; y: Integer; s: PWideString);
begin
QPainter_drawText(Widget, x, y, s);
end;
{ TQtBrush }
{------------------------------------------------------------------------------
Function: TQtBrush.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtBrush.Create;
begin
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QBrush_create');
{$endif}
Widget := QBrush_create;
end;
{------------------------------------------------------------------------------
Function: TQtBrush.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtBrush.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QBrush_destroy');
{$endif}
QBrush_destroy(Widget);
inherited Destroy;
end;
{ TQtMainWindow }
{------------------------------------------------------------------------------
Function: TQtMainWindow.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtMainWindow.Create(const AWinControl: TWinControl; const AParams: TCreateParams);
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QWidget_Create');
{$endif}
Widget := QWidget_Create(nil, QtWindow);
// Form initial position
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
{ // Painting helper device
Widget := QWidget_create;
QWidget_setParent(Widget, Window);
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
// Required to implement OnPaint event
QMainWindow_setCentralWidget(Window, Widget);
// Accepts keyboard and mouse events
QWidget_setFocusPolicy(Window, QtStrongFocus);
QWidget_setFocusPolicy(Widget, QtStrongFocus);}
end;
{------------------------------------------------------------------------------
Function: TQtMainWindow.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtMainWindow.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QWidget_destroy');
{$endif}
QWidget_destroy(Widget);
inherited Destroy;
end;
{ TQtStaticText }
{------------------------------------------------------------------------------
Function: TQtStaticText.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtStaticText.Create(const AWinControl: TWinControl; const AParams: TCreateParams);
var
Str: WideString;
Parent: QWidgetH;
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QLabel_create');
{$endif}
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Widget := QLabel_create(Parent);
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
Str := WideString(AWinControl.Caption);
SetText(@Str);
end;
{------------------------------------------------------------------------------
Function: TQtStaticText.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtStaticText.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QLabel_destroy');
{$endif}
QLabel_destroy(QLabelH(Widget));
inherited Destroy;
end;
{------------------------------------------------------------------------------
Function: TQtStaticText.SetText
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtStaticText.SetText(text: PWideString);
begin
QLabel_setText(QLabelH(Widget), text);
end;
{------------------------------------------------------------------------------
Function: TQtStaticText.Text
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtStaticText.Text(retval: PWideString);
begin
QLabel_text(QLabelH(Widget), retval);
end;
{ TQtTimer }
{------------------------------------------------------------------------------
Function: TQtTimer.CreateTimer
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtTimer.CreateTimer(Interval: integer;
const TimerFunc: TFNTimerProc; App: QObjectH);
var
Method: TMethod;
Hook : QObject_hookH;
begin
AppObject := App;
Id := QObject_startTimer(AppObject, Interval);
CallbackFunc := TimerFunc;
// Callback Event
Hook := QObject_hook_create(AppObject);
TEventFilterMethod(Method) := EventFilter;
QObject_hook_hook_events(Hook, Method);
end;
{------------------------------------------------------------------------------
Function: TQtTimer.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtTimer.Destroy;
begin
QObject_killTimer(AppObject, id);
inherited Destroy;
end;
{------------------------------------------------------------------------------
Function: TQtTimer.EventFilter
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
function TQtTimer.EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
begin
Result:=False;
if QEvent_type(Event) = QEventTimer then
begin
QEvent_accept(Event);
CallbackFunc;
end;
end;
{ TQtCheckBox }
{------------------------------------------------------------------------------
Function: TQtCheckBox.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtCheckBox.Create(const AWinControl: TWinControl; const AParams: TCreateParams);
var
Str: WideString;
Parent: QWidgetH;
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QCheckBox_create');
{$endif}
if (AWinControl.Parent is TCustomCheckGroup) then
begin
Widget := QCheckBox_create;
QLayout_addWidget(TQtGroupBox(AWinControl.Parent.Handle).VBoxLayout, Widget);
end
else
begin
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Widget := QCheckBox_create(Parent);
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
end;
Str := WideString(AWinControl.Caption);
SetText(@Str);
end;
{------------------------------------------------------------------------------
Function: TQtCheckBox.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtCheckBox.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QCheckBox_destroy');
{$endif}
QCheckBox_destroy(QCheckBoxH(Widget));
inherited Destroy;
end;
{------------------------------------------------------------------------------
Function: TQtCheckBox.EventFilter
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
function TQtCheckBox.EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
begin
Result := False;
// Inherited Callbacks
inherited EventFilter(Sender, Event);
end;
{------------------------------------------------------------------------------
Function: TQtCheckBox.CheckState
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
function TQtCheckBox.CheckState: QtCheckState;
begin
Result := QCheckBox_checkState(QCheckBoxH(Widget));
end;
{------------------------------------------------------------------------------
Function: TQtCheckBox.setCheckState
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtCheckBox.setCheckState(state: QtCheckState);
begin
QCheckBox_setCheckState(QCheckBoxH(Widget), state);
end;
{ TQtRadioButton }
{------------------------------------------------------------------------------
Function: TQtRadioButton.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtRadioButton.Create(const AWinControl: TWinControl; const AParams: TCreateParams);
var
Str: WideString;
Parent: QWidgetH;
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QRadioButton_create');
{$endif}
if (AWinControl.Parent is TCustomRadioGroup) then
begin
Widget := QRadioButton_create;
QLayout_addWidget(TQtGroupBox(AWinControl.Parent.Handle).VBoxLayout, Widget);
end
else
begin
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Widget := QRadioButton_create(Parent);
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
end;
Str := WideString(AWinControl.Caption);
SetText(@Str);
end;
{------------------------------------------------------------------------------
Function: TQtRadioButton.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtRadioButton.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QRadioButton_destroy');
{$endif}
QRadioButton_destroy(QRadioButtonH(Widget));
inherited Destroy;
end;
{------------------------------------------------------------------------------
Function: TQtRadioButton.EventFilter
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
function TQtRadioButton.EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
begin
Result := False;
// Inherited Callbacks
inherited EventFilter(Sender, Event);
end;
{ TQtGroupBox }
{------------------------------------------------------------------------------
Function: TQtGroupBox.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtGroupBox.Create(const AWinControl: TWinControl;
const AParams: TCreateParams);
var
Parent: QWidgetH;
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QCheckBox_create');
{$endif}
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Widget := QGroupBox_create(Parent);
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
{------------------------------------------------------------------------------
Adds buttons if the control is a TCustomRadioGroup
------------------------------------------------------------------------------}
if AWinControl is TCustomRadioGroup then
begin
VBoxLayout := QVBoxLayout_create;
{ for i := 0 to TCustomRadioGroup(AWinControl).Items.Count - 1 do
begin
Str := WideString(TCustomRadioGroup(AWinControl).Items.Strings[i]);
Button := QRadioButton_create(@Str);
QLayout_addWidget(VBoxLayout, Button);
end;}
QWidget_setLayout(Widget, VBoxLayout);
end
{------------------------------------------------------------------------------
Adds buttons if the control is a TCustomCheckGroup
------------------------------------------------------------------------------}
else if AWinControl is TCustomCheckGroup then
begin
VBoxLayout := QVBoxLayout_create;
{ for i := 0 to TCustomCheckGroup(AWinControl).Items.Count - 1 do
begin
Str := WideString(TCustomCheckGroup(AWinControl).Items.Strings[i]);
Button := QCheckBox_create(@Str);
QLayout_addWidget(VBoxLayout, Button);
end;}
QWidget_setLayout(Widget, VBoxLayout);
end;
end;
{------------------------------------------------------------------------------
Function: TQtGroupBox.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtGroupBox.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QCheckBox_destroy');
{$endif}
QCheckBox_destroy(QCheckBoxH(Widget));
inherited Destroy;
end;
{ TQtFrame }
{------------------------------------------------------------------------------
Function: TQtFrame.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtFrame.Create(const AWinControl: TWinControl;
const AParams: TCreateParams);
var
Parent: QWidgetH;
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QFrame_create');
{$endif}
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Widget := QFrame_create(Parent);
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
end;
{------------------------------------------------------------------------------
Function: TQtFrame.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtFrame.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QFrame_destroy');
{$endif}
QFrame_destroy(QFrameH(Widget));
inherited Destroy;
end;
{------------------------------------------------------------------------------
Function: TQtFrame.setFrameStyle
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtFrame.setFrameStyle(p1: Integer);
begin
QFrame_setFrameStyle(QFrameH(Widget), p1);
end;
{------------------------------------------------------------------------------
Function: TQtFrame.setFrameShape
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtFrame.setFrameShape(p1: QFrameShape);
begin
QFrame_setFrameShape(QFrameH(Widget), p1);
end;
{------------------------------------------------------------------------------
Function: TQtFrame.setFrameShadow
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtFrame.setFrameShadow(p1: QFrameShadow);
begin
QFrame_setFrameShadow(QFrameH(Widget), p1);
end;
{ TQtLineEdit }
{------------------------------------------------------------------------------
Function: TQtLineEdit.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtLineEdit.Create(const AWinControl: TWinControl;
const AParams: TCreateParams);
var
Parent: QWidgetH;
Str: WideString;
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QLineEdit_create');
{$endif}
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Str := WideString((AWinControl as TCustomEdit).Text);
Widget := QLineEdit_create(@Str, Parent);
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
end;
{------------------------------------------------------------------------------
Function: TQtLineEdit.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtLineEdit.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QLineEdit_destroy');
{$endif}
QLineEdit_destroy(QLineEditH(Widget));
inherited Destroy;
end;
{ TQtTextEdit }
{------------------------------------------------------------------------------
Function: TQtTextEdit.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtTextEdit.Create(const AWinControl: TWinControl;
const AParams: TCreateParams);
var
Parent: QWidgetH;
Str: WideString;
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QTextEdit_create');
{$endif}
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Str := WideString((AWinControl as TCustomMemo).Lines.Text);
Widget := QTextEdit_create(@Str, Parent);
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
end;
{------------------------------------------------------------------------------
Function: TQtTextEdit.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtTextEdit.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QTextEdit_destroy');
{$endif}
QTextEdit_destroy(QTextEditH(Widget));
inherited Destroy;
end;
{ TQtTabWidget }
{------------------------------------------------------------------------------
Function: TQtTabWidget.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtTabWidget.Create(const AWinControl: TWinControl;
const AParams: TCreateParams);
var
Parent: QWidgetH;
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QTabWidget_create');
{$endif}
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Widget := QTabWidget_create(Parent);
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
end;
{------------------------------------------------------------------------------
Function: TQtTabWidget.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtTabWidget.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QTabWidget_destroy');
{$endif}
QTabWidget_destroy(QTabWidgetH(Widget));
inherited Destroy;
end;
{------------------------------------------------------------------------------
Function: TQtTabWidget.insertTab
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
function TQtTabWidget.insertTab(index: Integer; page: QWidgetH; p2: PWideString): Integer;
begin
Result := QTabWidget_insertTab(QTabWidgetH(Widget), index, page, p2);
end;
{ TQtComboBox }
{------------------------------------------------------------------------------
Function: TQtComboBox.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtComboBox.Create(const AWinControl: TWinControl;
const AParams: TCreateParams);
var
Parent: QWidgetH;
Str: WideString;
i: Integer;
data: QVariantH;
begin
{------------------------------------------------------------------------------
Creates dummy data
This data is required, passing nil to QComboBox_addItem will cause a crash
------------------------------------------------------------------------------}
data := QVariant_create(10);
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QComboBox_create');
{$endif}
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Widget := QComboBox_create(Parent);
// Add the items to the combo box
for i := 0 to (AWinControl as TCustomComboBox).Items.Count - 1 do
begin
Str := WideString((AWinControl as TCustomComboBox).Items.Strings[i]);
QComboBox_addItem(QComboBoxH(Widget), @Str, data);
end;
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
// Clean up
QVariant_destroy(data);
end;
{------------------------------------------------------------------------------
Function: TQtComboBox.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtComboBox.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QComboBox_destroy');
{$endif}
QComboBox_destroy(QComboBoxH(Widget));
inherited Destroy;
end;
{------------------------------------------------------------------------------
Function: TQtComboBox.currentIndex
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
function TQtComboBox.currentIndex: Integer;
begin
Result := QComboBox_currentIndex(QComboBoxH(Widget));
end;
{------------------------------------------------------------------------------
Function: TQtGroupBox.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
procedure TQtComboBox.setCurrentIndex(index: Integer);
begin
QComboBox_setCurrentIndex(QComboBoxH(Widget), index);
end;
{ TQtSpinBox }
{------------------------------------------------------------------------------
Function: TQtSpinBox.Create
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
constructor TQtSpinBox.Create(const AWinControl: TWinControl;
const AParams: TCreateParams);
var
Parent: QWidgetH;
begin
// Initializes the properties
LCLObject := AWinControl;
// Creates the widget
{$ifdef VerboseQt}
WriteLn('Calling QSpinBox_create');
{$endif}
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Widget := QSpinBox_create(Parent);
// Sets it<69> s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
end;
{------------------------------------------------------------------------------
Function: TQtSpinBox.Destroy
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
destructor TQtSpinBox.Destroy;
begin
{$ifdef VerboseQt}
WriteLn('Calling QSpinBox_destroy');
{$endif}
QSpinBox_destroy(QSpinBoxH(Widget));
inherited Destroy;
end;
end.