/// masterwin.h // master windows /* MasterX Windows Can be manipulated using these classes they will also soon have a easy to use scripting language as well */ #include "runmenu.h" #include "c:\sslib\mstr.h" #define MASTER_MAXWIN 100 #define MASTER_MAXCHILD 40 #define mx_max MASTER_MAXWIN #define MASTER_NULL -1 #define MASTER_LBUTTON 1 #define MASTER_RBUTTON 2 #define MXMAX_SURF 50 // a masterx single line of text struct masterlabel { bool on; int x; int y; int w; int h; COLORREF back; COLORREF fore; char title[100]; bool visible; }; // master surface struct mastersurf { MasterXHWND* game; // pointer to game object char filename[100]; int w; int h; LPDIRECTDRAWSURFACE surf; void loadsurface(char* filenamex); void destroysurface();// MUST BE RELEASED MANUALY (By Programmer w/ Destroy Surface call) mastersurf(); }; // animation, is a mastersurf* , with its play array length given struct displaylist { char data[100]; COLORREF fore; }; struct masterdisp { bool on; displaylist* display; int x; int y; int w; int h; COLORREF back_fill; COLORREF back_out; COLORREF fore; int display_index; int add_index; int array_len; int down_len; void init(displaylist* display,int arraylen,int down); void clear(); void add(char*,COLORREF); void scrollup(); void scrolldown(); }; // masterx window image struct masterimage { MasterXHWND* game;// pointer to game object bool on; bool visible; bool key; int x; int y; COLORREF colorkey; LPDIRECTDRAWSURFACE surf; char filename[100]; int w; int h; void setgraphic(char* filename); void setsurf(char* filename,LPDIRECTDRAWSURFACE surfx,int w, int h); // for quick picture switch's from SURFACE lists void setmsurf(mastersurf* msurf); // set master surf }; // a surface to pass in // TODO; *MLE rich control* // TODO; transfer control // a link, avilable for click processing. struct masterlink { bool on; bool visible; int x; int y; COLORREF bgcolor; COLORREF txtcolor; COLORREF seltxtcolor; char title[100]; char id[100]; bool under; }; // text display control struct masterdisplay { bool on; int x; int y; int w; int h; LPVOID data; HFONT font; COLORREF txtcolor; COLORREF bgcolor; bool visible; }; // master textbox struct mastertext { int x; int y; int w; int h; LPVOID data; bool on; bool visible; HFONT font; COLORREF txtcolor; COLORREF bgcolor; COLORREF outline; int cursorpos; void scrollup(); void scrolldown(); void settext(char*,COLORREF); void addtext(char*,COLORREF); }; // master simple linear input control struct masterinput { bool on; int x; int y; int len; COLORREF fore; COLORREF back; HFONT font; char data[100]; int index; bool focus; }; // a master button struct masterbutton { int x; int y; int w; int h; char title[100]; char id[100]; COLORREF down_backcolor; COLORREF down_outline; COLORREF up_backcolor; COLORREF up_outline; COLORREF forecolor; COLORREF push_white; COLORREF push_black; bool on; bool visible; bool idown; }; // painted objects ( AFTER IMAGES ) // struct masterrect { int x; int y; int w; int h; COLORREF outline; COLORREF fill; }; struct masterpie { int x; int y; int w; int h; COLORREF outline; COLORREF fill; }; struct masterroundrect { int x; int y; int w; int h; int x2; int y2; COLORREF outline; COLORREF fill; }; // end painted objects // special linked list of masterwindow children objects class masterchild { public: // MENU ITEM SURFACES SOCKET* mysocket; bool aim; bool on; bool attachwin; MasterXHWND* game; IDirectDrawSurface* gsurf[5]; int x; int y; int w; int h; COLORREF bg_fill; COLORREF bg_out; COLORREF bg_out2; COLORREF bar_fill; COLORREF bar_out; COLORREF fore; COLORREF bg_shade1; COLORREF bg_shade2; COLORREF mouse_over; int wcstate; int wdstate; bool wlock; int wover; int wovery; int wx; int wy; bool op_close; bool op_min; int child_index; char title[100]; bool show; int ecount; masterlabel label[50]; masterinput input[50]; masterimage image[50]; masterlink link[50]; masterbutton mbutton[50]; masterdisp mdisplay[50]; void loadgraphics(); void reloadgraphics(); void destroygraphics(); void drawbg(); void drawcontrols(); void keypress(int key); void mousedown(int mx,int my,int button); void mouseup(int mx, int my, int button); void mouseclick(int mx, int my); void mousemove(int mx, int my, long button); int createmasterdisplay(int screen,displaylist* display,int array_len,int x, int y, int w, int h,int down_len); // void windowthrow(); void update(); }; // a master window (item for linked list) (application with depth) class masterwindow { public: MasterXHWND* game; int movex; int movey; int MoveOver; int mwindex; int mx_index; masterlabel label[25][MASTER_MAXCHILD]; masterimage image[25][MASTER_MAXCHILD]; masterlink link[25][MASTER_MAXCHILD]; masterdisplay display[25][MASTER_MAXCHILD]; mastertext text[25][MASTER_MAXCHILD]; masterbutton mbutton[25][MASTER_MAXCHILD]; masterdisp mdisplay[25][MASTER_MAXCHILD]; masterinput input[25][MASTER_MAXCHILD]; // the children are like a global external flat screen masterchild child[25]; bool imenu; int mxindex; bool tbar; int Screen; int caps; int ecount; int x; int y; int w; int h; char title[100]; char cl[100]; HWND myhwnd; bool show; bool wlock; int windowstate; bool systray; char mybackground[100]; int childdepth; IDirectDrawSurface* surf[100]; COLORREF bgcolor; COLORREF txtcolor; COLORREF titcolor; COLORREF outline; masterwinmsg rtmsg; bool on; bool prog; int woverx; int wovery; bool im_attach; bool welthrow; int welcount; COLORREF progbar; COLORREF prog_title; COLORREF prog_titleout; COLORREF prog_titleout2; COLORREF chbarbg; COLORREF chbar2; COLORREF chbar_out; COLORREF chbar_out2; void init(MasterXHWND*); void createwindow(char* title, int x, int y, int w, int h,MasterXHWND* gameX); void movewindow(int x, int y); void showwindow(bool); void printtext(char* buff, int x, int y,COLORREF r); void draw(); void drawtitle(); void drawbg(); void drawcontrols(); int createlabel(int screen,char* title, int x, int y, COLORREF bg, COLORREF fore); int createimage(int screen,char* filename, int x, int y); int createlink(int scren,char* title, char* id, int x, int y); int createdisplay(int screen,char* txt, int x, int y, int w, int h); int createtext(int screen,char* txt, int x, int y, int w, int h); int createbutton(int screen,char* title, char* id, int x, int y, int w, int h); int createmasterdisplay(int screen,displaylist* display,int array_len,int x, int y, int w, int h,int down_len); int createinput(int screen, int x, int y, int len); // creating the programs *global* flat screen children int createchild(char* title, int x, int y, int w, int h); void windowthrow(); void winfix(); void childupdate(); void setscreen(int); int getscreen(); void reloadgraphics(); // able to draw shit void drawrect(int x, int y , int xx , int yy, COLORREF fill,COLORREF outline); void drawmove(); masterwinmsg update();// returns shit to proc w/ message void recvmsg(masterwinmsg); void keypress(int key); void mouseclick(int x, int y); void mousemove(int x, int y, long button); void mousedown(int ix, int iy, int button); void mouseup(int ix, int iy,int button); void loadgraphics(); void killgraphics(); masterwindow(); }; // window handler (link list handler) class masterwinhandle { public: MasterXHWND* game; masterwindow win[MASTER_MAXWIN]; int mode; int curwin; int cpos; int barx; int bary; int disbar; int disbar2; int mx_mousex; int mx_mousey; int lstat; int rstat; int oldcur; bool dshow; bool bswitch; bool iswitch; COLORREF bgout; COLORREF bgout2; IDirectDrawSurface* surf[10]; IDirectDrawSurface* xbar[10]; bool mxbar1; bool mxbar2; void init(MasterXHWND*); void update(); void mouseclick(int x, int y); void barclick(int ix, int iy); void mousemove(int x, int y, long button); void keyinput(int key); masterhandle findwindow(char*); masterhandle findwindowex(char*,char*); long sendmessage(masterhandle mwindow,masterhandle mchild,masterwinmsg msg); IDirectDrawSurface* bar[4]; void drawbar(); int getoffwin(); int masterWindow(char* t, int x, int y, int w,int h,COLORREF bg); int masterProgram(char* title, char* cl); void closewindow(char* title); void selectwindow(int); void destroywindow(int); void barleft(); void barright(); void barup(); void bardown(); void loadgraphics(); void reloadgraphics(); void loadbar(); void mousedown(int x, int y, int button); void mouseup(int x, int y, int button); int getnextwindow(int); int getprevwindow(int); void barchange(); void barover(); void progbar(); void addimsocket(SOCKET* s,displaylist*); int getnextchild(int); int getprevchild(int); // for a masterX Program message relay void msgrelay(UINT msg,LPARAM lParam,WPARAM wParam); ~masterwinhandle(); void killgraphics(); int max; }; int getbary();