Category : C Source Code
Archive   : WIDGETS.ZIP
Filename : WIDGET.H

 
Output of file : WIDGET.H contained in archive : WIDGETS.ZIP
// WIDGET.H
//
// David Stafford
//
// 11/25/91


#ifndef __WIDGET_H
#define __WIDGET_H

#ifdef CDIST
#undef CDIST
#define CDIST NEAR
#endif

#ifdef DDIST
#undef DDIST
#define DDIST NEAR
#endif

#ifndef LINKABLE
#define CDIST FAR
#define DDIST FAR
#else
#ifndef CDIST
#define CDIST FAR
#endif

#ifndef DDIST
#define DDIST FAR
#endif

#define GetWidgetExtra( Widget ) ((char *)(Widget) + sizeof(WIDGET))
#define GetWidgetRect( Widget, Rec ) ((*(Rec)) = (Widget)->Rect)
#define GetWidgetImage( Widget ) ((Widget)->Image)
#define GetWidgetMask( Widget ) ((Widget)->Mask)
#define GetWidgetSize( Widget ) ((Widget)->Size)
#define GetWidgetPoint( Widget ) (*(POINT *)&((Widget)->Rect.left))
#define IsWidgetVisible( Widget ) ((Widget)->Visible > 0)
#endif

typedef struct tagWIDGET
{
HWND Wnd; // Window which "owns" the widget
POINT Size; // Width and height of the widget
RECT Rect; // Location within the window
HBITMAP Image; // The widget image
HBITMAP Mask; // (Optional) 1-plane AND mask
HBITMAP Background; // Behind the widget
int Visible; // Widget is visible if > 0
BOOL Dirty; // For repaint
struct tagWIDGET *Next; // You guessed it
}
WIDGET;

typedef WIDGET NEAR * HWIDGET;


typedef struct
{
HDC DC;
HWIDGET Widget;
int Speed;
DWORD StartTime;
int Distance;
int Count;
}
ANIM_DATA;


// Some handy general-purpose bitmap functions

HBITMAP CDIST PASCAL CombineBitmaps( HBITMAP, HBITMAP , HBITMAP , DWORD );
void CDIST PASCAL DrawBitmap( HDC, int, int, HBITMAP, HBITMAP);

// The widget-works

HWIDGET CDIST PASCAL CreateWidget( HWND , HBITMAP, HBITMAP, int);
void CDIST PASCAL MoveWidget( HDC, HWIDGET, int, int);
void CDIST PASCAL AnimateWidget( HDC, HWIDGET, int, int, int , HANDLE);
void CDIST PASCAL DestroyWidget( HWIDGET);
void CDIST PASCAL HideWidget( HDC, HWIDGET);
void CDIST PASCAL AbsHideWidget( HDC, HWIDGET);
void CDIST PASCAL ShowWidget( HDC, HWIDGET);
void CDIST PASCAL AbsShowWidget( HDC, HWIDGET);
void CDIST PASCAL RepaintWidgets( HDC, HWND );
HWIDGET CDIST PASCAL WidgetHitTest( HWND , int, int);
void CDIST PASCAL InvalidateWidgetsForPaint( HWND );
BOOL CDIST PASCAL IsPointInWidget( HWIDGET, int, int);
HWIDGET CDIST PASCAL GetNextWidget( HWND , HWIDGET);
int CDIST PASCAL GetVersionNumber( void );
void CDIST PASCAL DestroyAllWidgetsForTheWindow( HWND );
int CDIST PASCAL DistanceInPoints( int, int, int, int);
BOOL CDIST PASCAL IntersectWidgetRect( HWIDGET, RECT DDIST *, RECT DDIST *);
BOOL CDIST PASCAL WidgetsOverlap( HWIDGET, HWIDGET);

#ifndef LINKABLE
void DDIST * CDIST PASCAL GetWidgetExtra( HWIDGET);
void CDIST PASCAL GetWidgetRect( HWIDGET, RECT DDIST *);
POINT CDIST PASCAL GetWidgetSize( HWIDGET);
POINT CDIST PASCAL GetWidgetPoint( HWIDGET);
BOOL CDIST PASCAL IsWidgetVisible( HWIDGET);
#endif

#endif


  3 Responses to “Category : C Source Code
Archive   : WIDGETS.ZIP
Filename : WIDGET.H

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/