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 )