Prima
view release on metacpan or search on metacpan
include/apricot.h view on Meta::CPAN
#define NULL_HANDLE Null(Handle)
#define NULL_SV &PL_sv_undef
#define NULL_HANDLE Null(Handle)
#define NULL_SV &PL_sv_undef
#ifndef true
#define true TRUE
#endif
#ifndef false
#define false FALSE
#endif
typedef struct _List
{
Handle * items;
int count;
int size;
int delta;
} List, *PList;
/* Event structures */
#ifdef KeyEvent
#undef KeyEvent
#endif
typedef struct _KeyEvent {
int cmd;
int subcmd;
Handle source;
int code;
int key;
int mod;
int repeat;
} KeyEvent, *PKeyEvent;
#ifdef PositionalEvent
#undef PositionalEvent
#endif
typedef struct _PositionalEvent {
int cmd;
int subcmd;
Handle source;
Point where;
int button;
int mod;
int nth;
} PositionalEvent, *PPositionalEvent;
#ifdef DNDEvent
#undef DNDEvent
#endif
typedef struct _DNDEvent {
int cmd;
int allow;
int action;
int modmap;
Handle clipboard;
Point where;
Box pad;
Handle counterpart;
} DNDEvent, *PDNDEvent;
#ifdef GenericEvent
#undef GenericEvent
#endif
typedef struct _GenericEvent {
int cmd;
int subcmd;
Handle source;
int i;
long l;
Bool B;
Point P;
Rect R;
void* p;
Handle H;
} GenericEvent, *PGenericEvent;
typedef union _Event {
int cmd;
GenericEvent gen;
PositionalEvent pos;
KeyEvent key;
DNDEvent dnd;
} Event, *PEvent;
typedef struct _PostMsg {
int msgId;
Handle h;
SV * info1;
SV * info2;
} PostMsg, *PPostMsg;
/* hashes support */
/* It's a mere coincidence that hashes in Prima guts implemented */
/* by means of Perl hashes */
#ifdef POLLUTE_NAME_SPACE
#define hash_create prima_hash_create
#define hash_destroy prima_hash_destroy
#define hash_fetch prima_hash_fetch
#define hash_delete prima_hash_delete
#define hash_store prima_hash_store
#define hash_count prima_hash_count
#define hash_first_that prima_hash_first_that
#endif
typedef HV *PHash;
typedef Bool HashProc( void * item, int keyLen, void * key, void * params);
typedef HashProc *PHashProc;
extern PHash
prima_hash_create( void);
extern void
prima_hash_destroy( PHash self, Bool killAll);
include/apricot.h view on Meta::CPAN
extern Point
apc_cursor_get_pos( Handle self);
extern Point
apc_cursor_get_size( Handle self);
extern Bool
apc_cursor_get_visible( Handle self);
extern Point
apc_pointer_get_hot_spot( Handle self);
extern Point
apc_pointer_get_pos( Handle self);
extern int
apc_pointer_get_shape( Handle self);
extern Point
apc_pointer_get_size( Handle self);
extern Bool
apc_pointer_get_bitmap( Handle self, Handle icon);
extern Bool
apc_pointer_get_visible( Handle self);
extern Bool
apc_pointer_set_pos( Handle self, int x, int y);
extern Bool
apc_pointer_set_shape( Handle self, int sysPtrId);
extern Bool
apc_pointer_set_user( Handle self, Handle icon, Point hotSpot);
extern Bool
apc_pointer_set_visible( Handle self, Bool visible);
extern int
apc_pointer_get_state( Handle self);
extern int
apc_kbd_get_state( Handle self);
/* Clipboard */
#define cfText 0
#define cfBitmap 1
#define cfImage cfBitmap
#define cfUTF8 2
#define cfCustom 3
typedef struct {
Handle image;
Byte * data;
IV length;
} ClipboardDataRec, *PClipboardDataRec;
extern PList
apc_get_standard_clipboards( void);
extern Bool
apc_clipboard_create( Handle self);
extern Bool
apc_clipboard_destroy( Handle self);
extern Bool
apc_clipboard_open( Handle self);
extern Bool
apc_clipboard_close( Handle self);
extern Bool
apc_clipboard_clear( Handle self);
extern PList
apc_clipboard_get_formats( Handle self);
extern Bool
apc_clipboard_get_data( Handle self, Handle id, PClipboardDataRec c);
extern ApiHandle
apc_clipboard_get_handle( Handle self);
extern Bool
apc_clipboard_has_format( Handle self, Handle id);
extern Bool
apc_clipboard_set_data( Handle self, Handle id, PClipboardDataRec c);
extern Handle
apc_clipboard_register_format( Handle self, const char *format);
extern Bool
apc_clipboard_deregister_format( Handle self, Handle id);
extern Bool
apc_clipboard_is_dnd( Handle self);
/* Drag and drop */
#define DND(const_name) CONSTANT(dnd,const_name)
START_TABLE(dnd,UV)
#define dndNone 0x00
DND(None)
#define dndCopy 0x01
DND(Copy)
#define dndMove 0x02
DND(Move)
#define dndLink 0x04
DND(Link)
#define dndMask 0x07
DND(Mask)
END_TABLE(dnd,UV)
#undef DND
extern Bool
apc_dnd_get_aware( Handle self );
extern Bool
apc_dnd_set_aware( Handle self, Bool is_target );
extern int
apc_dnd_start( Handle self, int actions, Bool default_pointers, Handle * counterpart);
extern Handle
apc_dnd_get_clipboard( Handle self );
/* Menus & popups */
typedef struct _MenuItemReg { /* Menu item registration record */
char * variable; /* perl variable name */
char * text; /* menu text */
char * accel; /* accelerator text */
int key; /* accelerator key, kbXXX */
int id; /* unique id */
char * perlSub; /* sub name */
Handle bitmap; /* bitmap if not nil */
SV * code; /* code if not nil */
SV * options; /* use options if not nil */
Handle icon; /* custom checked bitmap */
int group; /* radio group */
struct _MenuItemReg* down; /* pointer to submenu */
struct _MenuItemReg* next; /* pointer to next item */
struct {
unsigned int checked : 1; /* true if item is checked */
unsigned int disabled : 1;
unsigned int rightAdjust : 1; /* true if right adjust ordered */
unsigned int divider : 1; /* true if it's line divider */
unsigned int utf8_variable : 1;
unsigned int utf8_text : 1;
unsigned int utf8_accel : 1;
unsigned int utf8_perlSub : 1;
unsigned int autotoggle : 1; /* true if menu is toggled automatically */
unsigned int custom_draw : 1; /* true if menu item is drawn through onMenuItemPaint */
} flags;
} MenuItemReg, *PMenuItemReg;
extern Bool
apc_menu_create( Handle self, Handle owner);
extern Bool
apc_menu_update( Handle self, PMenuItemReg oldBranch, PMenuItemReg newBranch);
extern Bool
apc_menu_destroy( Handle self);
extern PFont
apc_menu_default_font( PFont font);
extern Color
apc_menu_get_color( Handle self, int index);
extern PFont
apc_menu_get_font( Handle self, PFont font);
extern Bool
apc_menu_set_color( Handle self, Color color, int index);
extern Bool
apc_menu_set_font( Handle self, PFont font);
extern Bool
apc_menu_item_begin_paint( Handle self, PEvent event);
extern Bool
apc_menu_item_end_paint( Handle self, PEvent event);
( run in 0.931 second using v1.01-cache-2.11-cpan-2398b32b56e )