lazarus-ccr/lclbindings/lclincludes/controls.h
2008-02-03 15:09:24 +00:00

89 lines
2.1 KiB
C

/*
controls.h
C/C++ header for the LCL Exports library
LICENSE: The same modifyed LGPL as the Free Pascal Runtime Library
and the Lazarus Component Library
Copyright (C) 2008 Felipe Monteiro de Carvalho
*/
#ifndef LAZARUS_CONTROLS_H
#define LAZARUS_CONTROLS_H
#include "system.h"
#ifdef __cplusplus
extern "C" {
#endif
/* TControl */
typedef void* TControlH;
/* Helper macros to access the parameters of an event */
#ifdef __BORLANDC__
typedef __fastcall void (*TNotifyEvent) (void* Self, TObjectH Sender);
#define FASTCALL_TNOTIFYEVENT_START(EventName) \
__fastcall void EventName(void* Self, TObjectH Sender){
#elif __GNUC__
#ifdef __i386__
typedef void (*TNotifyEvent) (void);
#define FASTCALL_TNOTIFYEVENT_START(EventName) \
void EventName(){ \
void* Self; \
TObjectH Sender; \
__asm__ __volatile__ ("nop" \
: "=a" (Self), "=d" (Sender) \
: "a" (Self), "d" (Sender) \
);
#else
typedef void (*TNotifyEvent) (void* Self, TObjectH Sender);
#define FASTCALL_TNOTIFYEVENT_START(EventName) \
void EventName(void* Self, TObjectH Sender){
#endif
#endif
__cdecl TNotifyEvent TControl_GetOnClick(TControlH Self);
__cdecl TControl_SetOnClick(TControlH Self, TNotifyEvent AValue);
__cdecl char* TControl_GetCaption(TControlH Self);
__cdecl TControl_SetCaption(TControlH Self, char* AValue);
__cdecl Integer TControl_GetLeft(TControlH Self);
__cdecl TControl_SetLeft(TControlH Self, Integer AValue);
__cdecl Integer TControl_GetHeight(TControlH Self);
__cdecl TControl_SetHeight(TControlH Self, Integer AValue);
__cdecl char* TControl_GetHint(TControlH Self);
__cdecl TControl_SetHint(TControlH Self, char* AValue);
__cdecl Integer TControl_GetTop(TControlH Self);
__cdecl TControl_SetTop(TControlH Self, Integer AValue);
__cdecl Integer TControl_GetWidth(TControlH Self);
__cdecl TControl_SetWidth(TControlH Self, Integer AValue);
/* TWinControl */
typedef void* TWinControlH;
__cdecl TWinControlH TWinControl_GetParent(TWinControlH Self);
__cdecl TWinControl_SetParent(TWinControlH Self, TWinControlH AValue);
#ifdef __cplusplus
}
#endif
#endif /* !LAZARUS_CONTROLS_H */