xenocara/app/fvwm/extras/FvwmScript/Widgets/Widget.c

274 lines
10 KiB
C

/*******************************************************************/
/* Fichier contenant les fonctions attachees aux objets graphiques */
/*******************************************************************/
#include "Tools.h"
extern void InitPushButton(struct XObj *xobj);
extern void DestroyPushButton(struct XObj *xobj);
extern void DrawPushButton(struct XObj *xobj);
extern void EvtMousePushButton(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyPushButton(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgPushButton(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitRadioButton(struct XObj *xobj);
extern void DestroyRadioButton(struct XObj *xobj);
extern void DrawRadioButton(struct XObj *xobj);
extern void EvtMouseRadioButton(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyRadioButton(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgRadioButton(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitItemDraw(struct XObj *xobj);
extern void DestroyItemDraw(struct XObj *xobj);
extern void DrawItemDraw(struct XObj *xobj);
extern void EvtMouseItemDraw(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyItemDraw(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgItemDraw(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitCheckBox(struct XObj *xobj);
extern void DestroyCheckBox(struct XObj *xobj);
extern void DrawCheckBox(struct XObj *xobj);
extern void EvtMouseCheckBox(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyCheckBox(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgCheckBox(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitTextField(struct XObj *xobj);
extern void DestroyTextField(struct XObj *xobj);
extern void DrawTextField(struct XObj *xobj);
extern void EvtMouseTextField(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyTextField(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgTextField(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitHScrollBar(struct XObj *xobj);
extern void DestroyHScrollBar(struct XObj *xobj);
extern void DrawHScrollBar(struct XObj *xobj);
extern void EvtMouseHScrollBar(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyHScrollBar(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgHScrollBar(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitVScrollBar(struct XObj *xobj);
extern void DestroyVScrollBar(struct XObj *xobj);
extern void DrawVScrollBar(struct XObj *xobj);
extern void EvtMouseVScrollBar(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyVScrollBar(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgVScrollBar(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitPopupMenu(struct XObj *xobj);
extern void DestroyPopupMenu(struct XObj *xobj);
extern void DrawPopupMenu(struct XObj *xobj);
extern void EvtMousePopupMenu(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyPopupMenu(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgPopupMenu(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitRectangle(struct XObj *xobj);
extern void DestroyRectangle(struct XObj *xobj);
extern void DrawRectangle(struct XObj *xobj);
extern void EvtMouseRectangle(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyRectangle(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgRectangle(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitMiniScroll(struct XObj *xobj);
extern void DestroyMiniScroll(struct XObj *xobj);
extern void DrawMiniScroll(struct XObj *xobj);
extern void EvtMouseMiniScroll(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyMiniScroll(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgMiniScroll(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitSwallow(struct XObj *xobj);
extern void DestroySwallow(struct XObj *xobj);
extern void DrawSwallow(struct XObj *xobj);
extern void EvtMouseSwallow(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeySwallow(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgSwallow(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitHDipstick(struct XObj *xobj);
extern void DestroyHDipstick(struct XObj *xobj);
extern void DrawHDipstick(struct XObj *xobj);
extern void EvtMouseHDipstick(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyHDipstick(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgHDipstick(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitVDipstick(struct XObj *xobj);
extern void DestroyVDipstick(struct XObj *xobj);
extern void DrawVDipstick(struct XObj *xobj);
extern void EvtMouseVDipstick(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyVDipstick(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgVDipstick(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitList(struct XObj *xobj);
extern void DestroyList(struct XObj *xobj);
extern void DrawList(struct XObj *xobj);
extern void EvtMouseList(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyList(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgList(struct XObj *xobj,unsigned long type,unsigned long *body);
extern void InitMenu(struct XObj *xobj);
extern void DestroyMenu(struct XObj *xobj);
extern void DrawMenu(struct XObj *xobj);
extern void EvtMouseMenu(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyMenu(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgMenu(struct XObj *xobj,unsigned long type,unsigned long *body);
/***********************************************/
/*Choix des fonctions suivant le type de bouton*/
/***********************************************/
void ChooseFunction(struct XObj *xobj,char *type)
{
if (strcmp(type,"PushButton")==0)
{
xobj->TypeWidget=PushButton;
xobj->InitObj=InitPushButton;
xobj->DestroyObj=DestroyPushButton;
xobj->DrawObj=DrawPushButton;
xobj->EvtMouse=EvtMousePushButton;
xobj->EvtKey=EvtKeyPushButton;
xobj->ProcessMsg=ProcessMsgPushButton;
}
else if (strcmp(type,"RadioButton")==0)
{
xobj->TypeWidget=RadioButton;
xobj->InitObj=InitRadioButton;
xobj->DestroyObj=DestroyRadioButton;
xobj->DrawObj=DrawRadioButton;
xobj->EvtMouse=EvtMouseRadioButton;
xobj->EvtKey=EvtKeyRadioButton;
xobj->ProcessMsg=ProcessMsgRadioButton;
}
else if (strcmp(type,"ItemDraw")==0)
{
xobj->TypeWidget=ItemDraw;
xobj->InitObj=InitItemDraw;
xobj->DestroyObj=DestroyItemDraw;
xobj->DrawObj=DrawItemDraw;
xobj->EvtMouse=EvtMouseItemDraw;
xobj->EvtKey=EvtKeyItemDraw;
xobj->ProcessMsg=ProcessMsgItemDraw;
}
else if (strcmp(type,"CheckBox")==0)
{
xobj->TypeWidget=CheckBox;
xobj->InitObj=InitCheckBox;
xobj->DestroyObj=DestroyCheckBox;
xobj->DrawObj=DrawCheckBox;
xobj->EvtMouse=EvtMouseCheckBox;
xobj->EvtKey=EvtKeyCheckBox;
xobj->ProcessMsg=ProcessMsgCheckBox;
}
else if (strcmp(type,"TextField")==0)
{
xobj->TypeWidget=TextField;
xobj->InitObj=InitTextField;
xobj->DestroyObj=DestroyTextField;
xobj->DrawObj=DrawTextField;
xobj->EvtMouse=EvtMouseTextField;
xobj->EvtKey=EvtKeyTextField;
xobj->ProcessMsg=ProcessMsgTextField;
}
else if (strcmp(type,"HScrollBar")==0)
{
xobj->TypeWidget=HScrollBar;
xobj->InitObj=InitHScrollBar;
xobj->DestroyObj=DestroyHScrollBar;
xobj->DrawObj=DrawHScrollBar;
xobj->EvtMouse=EvtMouseHScrollBar;
xobj->EvtKey=EvtKeyHScrollBar;
xobj->ProcessMsg=ProcessMsgHScrollBar;
}
else if (strcmp(type,"VScrollBar")==0)
{
xobj->TypeWidget=VScrollBar;
xobj->InitObj=InitVScrollBar;
xobj->DestroyObj=DestroyVScrollBar;
xobj->DrawObj=DrawVScrollBar;
xobj->EvtMouse=EvtMouseVScrollBar;
xobj->EvtKey=EvtKeyVScrollBar;
xobj->ProcessMsg=ProcessMsgVScrollBar;
}
else if (strcmp(type,"PopupMenu")==0)
{
xobj->TypeWidget=PopupMenu;
xobj->InitObj=InitPopupMenu;
xobj->DestroyObj=DestroyPopupMenu;
xobj->DrawObj=DrawPopupMenu;
xobj->EvtMouse=EvtMousePopupMenu;
xobj->EvtKey=EvtKeyPopupMenu;
xobj->ProcessMsg=ProcessMsgPopupMenu;
}
else if (strcmp(type,"Rectangle")==0)
{
xobj->TypeWidget=Rectangle;
xobj->InitObj=InitRectangle;
xobj->DestroyObj=DestroyRectangle;
xobj->DrawObj=DrawRectangle;
xobj->EvtMouse=EvtMouseRectangle;
xobj->EvtKey=EvtKeyRectangle;
xobj->ProcessMsg=ProcessMsgRectangle;
}
else if (strcmp(type,"MiniScroll")==0)
{
xobj->TypeWidget=MiniScroll;
xobj->InitObj=InitMiniScroll;
xobj->DestroyObj=DestroyMiniScroll;
xobj->DrawObj=DrawMiniScroll;
xobj->EvtMouse=EvtMouseMiniScroll;
xobj->EvtKey=EvtKeyMiniScroll;
xobj->ProcessMsg=ProcessMsgMiniScroll;
}
else if (strcmp(type,"SwallowExec")==0)
{
xobj->TypeWidget=SwallowExec;
xobj->InitObj=InitSwallow;
xobj->DestroyObj=DestroySwallow;
xobj->DrawObj=DrawSwallow;
xobj->EvtMouse=EvtMouseSwallow;
xobj->EvtKey=EvtKeySwallow;
xobj->ProcessMsg=ProcessMsgSwallow;
}
else if (strcmp(type,"HDipstick")==0)
{
xobj->TypeWidget=HDipstick;
xobj->InitObj=InitHDipstick;
xobj->DestroyObj=DestroyHDipstick;
xobj->DrawObj=DrawHDipstick;
xobj->EvtMouse=EvtMouseHDipstick;
xobj->EvtKey=EvtKeyHDipstick;
xobj->ProcessMsg=ProcessMsgHDipstick;
}
else if (strcmp(type,"VDipstick")==0)
{
xobj->TypeWidget=VDipstick;
xobj->InitObj=InitVDipstick;
xobj->DestroyObj=DestroyVDipstick;
xobj->DrawObj=DrawVDipstick;
xobj->EvtMouse=EvtMouseVDipstick;
xobj->EvtKey=EvtKeyVDipstick;
xobj->ProcessMsg=ProcessMsgVDipstick;
}
else if (strcmp(type,"List")==0)
{
xobj->TypeWidget=List;
xobj->InitObj=InitList;
xobj->DestroyObj=DestroyList;
xobj->DrawObj=DrawList;
xobj->EvtMouse=EvtMouseList;
xobj->EvtKey=EvtKeyList;
xobj->ProcessMsg=ProcessMsgList;
}
else if (strcmp(type,"Menu")==0)
{
xobj->TypeWidget=Menu;
xobj->InitObj=InitMenu;
xobj->DestroyObj=DestroyMenu;
xobj->DrawObj=DrawMenu;
xobj->EvtMouse=EvtMouseMenu;
xobj->EvtKey=EvtKeyMenu;
xobj->ProcessMsg=ProcessMsgMenu;
}
else
{
fprintf(stderr,"Item %s unknow\n",type);
exit(1);
}
}