Prima

 view release on metacpan or  search on metacpan

include/win32/win32guts.h  view on Meta::CPAN

	unsigned aptWinPosDetermined     : 1;       // 0 when size is set, but position is not
	unsigned aptOnTop                : 1;       // HWND_TOPMOST is set
	unsigned aptLayered              : 1;       // WS_EX_LAYERED
	unsigned aptRepaintPending       : 1;       // for optLayered
	unsigned aptMovePending          : 1;       // for optLayered
	unsigned aptLayeredPaint         : 1;       // painting children of layered window
	unsigned aptLayeredRequested     : 1;       // Prima wants layered
	unsigned aptClipByChildren       : 1;       // cached clipping by children
	unsigned aptIgnoreSizeMessages   : 1;       // during window recreation
	unsigned aptGDIPlus              : 1;       // uses GDI+
	unsigned aptWantWorldTransform   : 1;       // SetWorldTransform is wanted for text
	unsigned aptUsedWorldTransform   : 1;       // SetWorldTransform(matrix) mode is on currently
	unsigned aptCachedWorldTransform : 1;       // SetWorldTransform doesn't need to be called repeatedly
} HandleOptions;

#define CLIPBOARD_MAIN 0
#define CLIPBOARD_DND  1

typedef struct _WinGuts
{
	HINSTANCE      instance;            // application instance
	int            cmd_show;            // run command state
	int            app_lock;            // application lock count
	int            pointer_lock;        // pointer lock count
	DWORD          main_thread_id;      // Id of main thread
	Point          display_resolution;  // screen resolution in ppi
	char           default_fixed_font    [256];
	char           default_variable_font [256];
	char           default_system_font   [256];
	Font           window_font;         // window default font
	Font           menu_font;           // menu default font
	Font           msg_font;            // message default font
	Font           cap_font;            // caption default font
	BITMAPINFO     display_bm_info;     // display bpp & size
	HWND           desktop_window;      // GetDesktopWindow() result
	Bool           insert_mode;         // fake insert mode
	Point          icon_size_large;
	Point          icon_size_small;
	Point          pointer_size;
	BYTE           key_state[ 256];      // application key buffer state
	BYTE           empty_key_state[ 256];// just zeros
	BYTE          *current_key_state;    // current virtual key buffer state
	HKL            key_layout;           // key layout, most likely latin for Ctrl+Key mapping
	NONCLIENTMETRICSW ncmData;           // windows system data
	List           transp;               // transparent controls list
	int            top_windows;          // count of top-level windows in app
	Bool           sys_focus_disabled;   // focus system disabled
	Bool           sys_focus_granted;    // SetFocus() was called inside apc_widget_set_focused
	Bool           sys_focus_dialog;     // system dialog is in action
	UINT           error_mode;           // SetErrorMode() result
	DWORD          version;              // GetVersion() cached result
	Point          cmDOUBLECLK;          // cached SM_CxDOUBLECLK values
	int            mouse_timer;          // is mouse timer started
	Bool           popup_active;         // flag to avoid double popup activation
	Bool           pointer_invisible;
	HWND           console;              // win32-bound console window
	Bool           dont_xlate_message;   // one-time stopper to TranslateMessage() call
	int            utf8_prepend_0x202D;  // newer windows do automatic bidi conversion, this is to cancel it
	WCHAR *      (*alloc_utf8_to_wchar_visual)(const char*,int,int*);
	ULONG_PTR      gdiplus_token;        // GDI+ handle
	Handle         clipboards[2];
	Bool           ole_initialized;
	void*          dnd_data_sender;      // IDropTarget.DragEnter.DataObject dnd storage object
	void*          dnd_data_receiver;    // CLIPBOARD_DND storage object
	Bool           dnd_inside_event;     // to distinguish whether the clipboard is read-only or not
	Bool           dnd_default_cursors;
	void*          drag_source;          // not null if dragging
	Handle         drag_source_widget;   //
	Handle         drag_target;          // last successful drop
	WORD           language_id;          // default shaping language
	char           language_descr[32];
	Bool           application_stop_signal;
	long           apc_error;
	Bool           wc2mb_is_fragile;     // cannot properly process current ACP

	int            get_pixel_needs_emulation; // 0 - not tried, -1 - no, 1 - yes
	HDC            get_pixel_dc_src, get_pixel_dc_dst;

	unsigned long  program_start_ts ;            // epoch
	unsigned int   mouse_double_click_delay;     // ms
	unsigned long  last_mouse_click_ts;          // (time - epoch) * 1000 + msec
	HWND           last_mouse_click_source;
	LPARAM         last_mouse_click_position;
	unsigned int   last_mouse_click_number;
	Byte           last_mouse_click_fingerprint; // kmXXX | mbXXX
} WinGuts, *PWinGuts;

typedef struct _WindowData
{
	int            border_icons;
	int            border_style;
	Point          hidden_pos;
	Point          hidden_size;
	int            state;
	Handle         old_foc;
	HWND           old_active;
	PHash          effects;
	WINDOWPLACEMENT fs_saved_placement;
} WindowData;

typedef struct _TimerData
{
	int            timeout;
} TimerData;

typedef struct _MenuItemData
{
	int            saved_dc;
} MenuItemData;

typedef struct _FileData
{
	intptr_t       object;
	int            type;
} FileData;

typedef struct
{
	HRGN region;
	int aperture;
} RegionData;


typedef struct _XLOGPALETTE {
	WORD           palVersion;

include/win32/win32guts.h  view on Meta::CPAN

#define apt_assign( option, value) ( sys options. option = (value)?1:0)

#define is_declipped( handle)      (                                                        \
	handle && ( dsys(handle) class_name != WC_FRAME ) &&                                \
	( !dsys(handle)options.aptClipOwner || ((( PWidget)handle)-> owner == application)) \
)

#define is_declipped_child( handle) (                                                       \
	handle && ( dsys(handle) class_name != WC_FRAME ) &&                                \
	!dsys(handle)options.aptClipOwner                                                   \
)

#define palette_create image_create_palette

typedef struct _ItemRegRec {
	int            cmd;
	void          *item;
} ItemRegRec, *PItemRegRec;

extern Bool            app_dead;
extern Bool            debug;
extern int             FONTSTRUCSIZE;
extern WinGuts         guts;
extern Handle          last_mouse_over;
extern PHash           mgr_fonts;
extern PHash           mgr_myfonts;
extern PHash           mgr_images;
extern PHash           mgr_menu;
extern PHash           mgr_menu_bitmaps;
extern PHash           mgr_patterns;
extern PHash           mgr_registry;
extern PHash           mgr_scripts;
extern PHash           mgr_styli;
extern MouseClickRec   mouse_click;
extern DWORD           rc;
extern HCURSOR         std_arrow_cursor;
extern HBRUSH          std_hollow_brush;
extern LinePattern     std_hollow_line_pattern;
extern HPEN            std_hollow_pen;
extern HBITMAP         std_unchecked_bitmap;
extern int             time_defs_count;
extern PItemRegRec     time_defs;

LRESULT CALLBACK    generic_app_handler      ( HWND win, UINT  msg, WPARAM mp1, LPARAM mp2);
LRESULT CALLBACK    generic_frame_handler    ( HWND win, UINT  msg, WPARAM mp1, LPARAM mp2);
LRESULT CALLBACK    layered_frame_handler    ( HWND win, UINT  msg, WPARAM mp1, LPARAM mp2);
LRESULT CALLBACK    generic_view_handler     ( HWND win, UINT  msg, WPARAM mp1, LPARAM mp2);

extern Bool         aa_text_out( Handle self, int x, int y, void * text, int len, Bool wide);
extern Bool         aa_glyphs_out( Handle self, PGlyphsOutRec t, int x, int y, int * text_advance, HFONT font);
extern void         aa_free_arena(Handle self, Bool for_reuse);
extern WCHAR *      alloc_utf8_to_wchar( const char * utf8, int length, int * mb_len);
extern WCHAR *      alloc_utf8_to_wchar_visual( const char * utf8, int length, int * mb_len);
extern WCHAR *      alloc_ascii_to_wchar( const char * text, int *length);
extern char *       alloc_wchar_to_utf8( WCHAR * src, int * len );
extern int          apcUpdateWindow( HWND wnd );
extern Bool         add_font_to_hash( const PFont key, const PFont font, Bool addSizeEntry);
extern char *       cf2name( UINT cf );
extern void         char2wchar( WCHAR * dest, char * src, int lim);
extern void         cleanup_gc_stack(Handle self, Bool all);
extern Bool         clipboard_get_data(int cfid, PClipboardDataRec c, void * p1, void * p2);
extern void         cm_squeeze_palette( PRGBColor source, int srcColors, PRGBColor dest, int destColors);
extern Bool         create_font_hash( void);
extern Bool         cursor_update( Handle self);
extern HDC          dc_alloc( void);
extern void         dc_free( void);
extern HDC          dc_compat_alloc( HDC compatDC);
extern void         dc_compat_free( void);
extern void         dbm_recreate( Handle self);
extern Bool         destroy_font_hash( void);
extern Bool         dnd_clipboard_create(void);
extern void         dnd_clipboard_destroy(void);
extern Bool         dnd_clipboard_open(void);
extern Bool         dnd_clipboard_close(void);
extern Bool         dnd_clipboard_clear(void);
extern PList        dnd_clipboard_get_formats(void);
extern Bool         dnd_clipboard_get_data( Handle id, PClipboardDataRec c);
extern Bool         dnd_clipboard_has_format( Handle id);
extern Bool         dnd_clipboard_set_data( Handle id, PClipboardDataRec c);
extern PList        dnd_clipboard_get_formats();
extern void         dpi_change(void);
extern char *       err_msg( DWORD errId, char * buffer);
extern char *       err_msg_gplus( GpStatus errId, char * buffer);
extern Bool         file_process_events(int cmd, WPARAM param1, LPARAM param2);
extern void         file_subsystem_done( void);
extern Bool         file_subsystem_init( void);
extern PDCFont      font_alloc( Font * data);
extern void         font_change( Handle self, Font * font);
extern void         font_clean( void);
extern void         font_font2logfont( Font * font, LOGFONTW * lf);
extern void         font_free( PDCFont res, Bool permanent);
extern void         font_logfont2font( LOGFONTW * lf, Font * font, Point * resolution);
extern void         font_pp2font( char * presParam, Font * font);
extern void         font_textmetric2font( TEXTMETRICW * tm, Font * fm, Bool readOnly);
extern Bool         get_font_from_hash( PFont font, Bool bySize);
extern Point        get_window_borders( int border_style);
extern void         gp_get_text_box( Handle self, ABC * abc, Point * pt);
extern void         gp_get_text_widths( Handle self, const char* text, int len, int flags, ABC * extents);
extern Bool         hwnd_check_limits( int x, int y, Bool uint);
extern void         hwnd_enter_paint( Handle self);
extern Handle       hwnd_frame_top_level( Handle self);
extern void         hwnd_leave_paint( Handle self);
extern Bool         hwnd_lock( Bool lock);
extern Handle       hwnd_to_view( HWND win);
extern Handle       hwnd_top_level( Handle self);
extern Handle       hwnd_layered_top_level( Handle self);
extern Bool         hwnd_repaint_layered( Handle self, Bool now);
extern void         image_argb_query_bits( Handle self);
extern HICON        image_make_icon_handle( Handle img, Point size, Point * hot_spot);
extern HBITMAP      image_create_argb_dib_section( HDC dc, int w, int h, uint32_t ** ptr);
extern HBITMAP      image_create_bitmap_by_type( Handle self, HPALETTE pal, XBITMAPINFO * bitmapinfo, int bm_type);
extern HBITMAP      image_create_bitmap( Handle self );
extern BITMAPINFO*  image_create_color_pattern_dib( Handle self);
extern void *       image_create_dib(Handle image, Bool global_alloc);
extern GpTexture*   image_create_gp_pattern( Handle self, Handle image, unsigned int alpha );
extern BITMAPINFO*  image_create_mono_pattern_dib(Handle self, COLORREF fg, COLORREF bg);
extern HPALETTE     image_create_palette( Handle self);
extern void         image_destroy_cache( Handle self);
extern void         image_fill_bitmap_cache( Handle self, int bm_type, Handle optimize_for_surface);
extern BITMAPINFO*  image_fill_bitmap_info( Handle self, XBITMAPINFO * bi, int bm_type);
extern void         image_query_bits( Handle self, Bool forceNewImage);
extern Bool         is_dwm_enabled(void);
extern void         mod_free( BYTE * modState);
extern BYTE *       mod_select( int mod);
extern Bool         palette_change( Handle self);
extern long         palette_match( Handle self, long color);
extern int          palette_match_color( XLOGPALETTE * lp, long clr, int * diff_factor);
extern PLinePattern patres_fetch( unsigned char * pattern, int len);
extern UINT         patres_user( unsigned char * pattern, int len);
extern Bool         process_msg( MSG * msg);
extern void         process_transparents( Handle self);
extern HRGN         region_create( Handle mask);
extern void         register_mapper_fonts(void);
extern long         remap_color( long clr, Bool toSystem);
extern void         reset_system_fonts(void);
extern void         syshandle_rehash( void);
extern Bool         select_pen(Handle self);
extern Bool         select_brush(Handle self);
extern Bool         select_gp_brush(Handle self);
extern Bool         select_world_transform(Handle self, Bool want_transform);



( run in 0.628 second using v1.01-cache-2.11-cpan-2398b32b56e )