window_handler.c

来自「CS架构的多平台的GUI系统」· C语言 代码 · 共 478 行 · 第 1/2 页

C
478
字号
	hndl->mouse.x = server->client[id].button[CLOSE].x + server->theme.button[v][CLOSE].handler.x;	hndl->mouse.y = server->client[id].button[CLOSE].y + server->theme.button[v][CLOSE].handler.y;	hndl->mouse.w = server->theme.button[v][CLOSE].handler.w;	hndl->mouse.h = server->theme.button[v][CLOSE].handler.h;	hndl->mouse.button = MOUSE_LEFTBUTTON;	hndl->mouse.p = s_server_window_btn_close_p;	hndl->mouse.r = s_server_window_btn_close_r;	hndl->mouse.oh = s_server_window_btn_close_oh;	hndl->mouse.ho = s_server_window_btn_close_ho;	hndl->mouse.hoh = s_server_window_btn_close_oh;	s_handler_add(server->window, hndl);	if (server->client[id].resizeable == 1) {		/* maximize */	        hndl = server->whndl[3];	        hndl->type = MOUSE_HANDLER;		hndl->mouse.x = server->client[id].button[MAXIMIZE].x + server->theme.button[v][MAXIMIZE].handler.x;		hndl->mouse.y = server->client[id].button[MAXIMIZE].y + server->theme.button[v][MAXIMIZE].handler.y;		hndl->mouse.w = server->theme.button[v][MAXIMIZE].handler.w;		hndl->mouse.h = server->theme.button[v][MAXIMIZE].handler.h;		hndl->mouse.button = MOUSE_LEFTBUTTON;		hndl->mouse.p = s_server_window_btn_maximize_p;		hndl->mouse.r = s_server_window_btn_maximize_r;		hndl->mouse.oh = s_server_window_btn_maximize_oh;		hndl->mouse.ho = s_server_window_btn_maximize_ho;		hndl->mouse.hoh = s_server_window_btn_maximize_oh;		s_handler_add(server->window, hndl);	}        if (server->client[id].win.w > server->theme.form_min.w) {		/* move 2 */	        hndl = server->whndl[4];	        hndl->type = MOUSE_HANDLER;		hndl->mouse.x = server->client[id].form[TOP_2].x;		hndl->mouse.y = server->client[id].form[TOP_2].y + server->theme.form[v][TOP_2].handler.y + 4;		hndl->mouse.w = server->client[id].form[TOP_2].w;		hndl->mouse.h = server->theme.form[v][TOP_2].handler.h - 4;		hndl->mouse.button = MOUSE_LEFTBUTTON;		hndl->mouse.p = s_server_window_btn_move;		s_handler_add(server->window, hndl);                /* move 3 */	        hndl = server->whndl[5];	        hndl->type = MOUSE_HANDLER;		hndl->mouse.x = server->client[id].form[TOP_3].x;		hndl->mouse.y = server->client[id].form[TOP_3].y + server->theme.form[v][TOP_3].handler.y + 4;		hndl->mouse.w = server->client[id].form[TOP_3].w;		hndl->mouse.h = server->theme.form[v][TOP_3].handler.h - 4;		hndl->mouse.button = MOUSE_LEFTBUTTON;		hndl->mouse.p = s_server_window_btn_move;		s_handler_add(server->window, hndl);                /* move 4 */	        hndl = server->whndl[6];	        hndl->type = MOUSE_HANDLER;		hndl->mouse.x = server->client[id].form[TOP_4].x;		hndl->mouse.y = server->client[id].form[TOP_4].y + server->theme.form[v][TOP_4].handler.y + 4;		hndl->mouse.w = server->client[id].form[TOP_4].w;		hndl->mouse.h = server->theme.form[v][TOP_4].handler.h - 4;		hndl->mouse.button = MOUSE_LEFTBUTTON;		hndl->mouse.p = s_server_window_btn_move;		s_handler_add(server->window, hndl);	}	/* move 5*/        hndl = server->whndl[7];        hndl->type = MOUSE_HANDLER;	hndl->mouse.x = server->client[id].form[TOP_5].x;	hndl->mouse.y = server->client[id].form[TOP_5].y + server->theme.form[v][TOP_5].handler.y + 4;	hndl->mouse.w = server->client[id].form[TOP_5].w;	hndl->mouse.h = server->theme.form[v][TOP_5].handler.h - 4;	hndl->mouse.button = MOUSE_LEFTBUTTON;	hndl->mouse.p = s_server_window_btn_move;	s_handler_add(server->window, hndl);	if (server->client[id].resizeable == 0) {		return;	}	/* resize u1 */        hndl = server->whndl[8];        hndl->type = MOUSE_HANDLER;	hndl->mouse.x = server->client[id].form[TOP_1].x;	hndl->mouse.y = server->client[id].form[TOP_1].y + server->theme.form[v][TOP_1].handler.y;	hndl->mouse.w = server->client[id].form[TOP_1].w;	hndl->mouse.h = 4;	hndl->mouse.button = MOUSE_LEFTBUTTON;	hndl->mouse.p = s_server_window_btn_resize_up;	hndl->mouse.o = s_server_window_btn_resize_u_o;	hndl->mouse.oh = s_server_window_btn_resize_oh;	s_handler_add(server->window, hndl);        if (server->client[id].win.w > server->theme.form_min.w) {		/* resize u2 */	        hndl = server->whndl[9];        	hndl->type = MOUSE_HANDLER;		hndl->mouse.x = server->client[id].form[TOP_2].x;		hndl->mouse.y = server->client[id].form[TOP_2].y + server->theme.form[v][TOP_2].handler.y;		hndl->mouse.w = server->client[id].form[TOP_2].w;		hndl->mouse.h = 4;		hndl->mouse.button = MOUSE_LEFTBUTTON;		hndl->mouse.p = s_server_window_btn_resize_up;		hndl->mouse.o = s_server_window_btn_resize_u_o;		hndl->mouse.oh = s_server_window_btn_resize_oh;		s_handler_add(server->window, hndl);		/* resize u3 */	        hndl = server->whndl[10];        	hndl->type = MOUSE_HANDLER;		hndl->mouse.x = server->client[id].form[TOP_3].x;		hndl->mouse.y = server->client[id].form[TOP_3].y + server->theme.form[v][TOP_3].handler.y;		hndl->mouse.w = server->client[id].form[TOP_3].w;		hndl->mouse.h = 4;		hndl->mouse.button = MOUSE_LEFTBUTTON;		hndl->mouse.p = s_server_window_btn_resize_up;		hndl->mouse.o = s_server_window_btn_resize_u_o;		hndl->mouse.oh = s_server_window_btn_resize_oh;		s_handler_add(server->window, hndl);                /* resize u4 */	        hndl = server->whndl[11];        	hndl->type = MOUSE_HANDLER;		hndl->mouse.x = server->client[id].form[TOP_4].x;		hndl->mouse.y = server->client[id].form[TOP_4].y + server->theme.form[v][TOP_4].handler.y;		hndl->mouse.w = server->client[id].form[TOP_4].w;		hndl->mouse.h = 4;		hndl->mouse.button = MOUSE_LEFTBUTTON;		hndl->mouse.p = s_server_window_btn_resize_up;		hndl->mouse.o = s_server_window_btn_resize_u_o;		hndl->mouse.oh = s_server_window_btn_resize_oh;		s_handler_add(server->window, hndl);	}	/* resize u5 */        hndl = server->whndl[12];       	hndl->type = MOUSE_HANDLER;	hndl->mouse.x = server->client[id].form[TOP_5].x;	hndl->mouse.y = server->client[id].form[TOP_5].y + server->theme.form[v][TOP_5].handler.y;	hndl->mouse.w = server->client[id].form[TOP_5].w;	hndl->mouse.h = 4;	hndl->mouse.button = MOUSE_LEFTBUTTON;	hndl->mouse.p = s_server_window_btn_resize_up;	hndl->mouse.o = s_server_window_btn_resize_u_o;	hndl->mouse.oh = s_server_window_btn_resize_oh;	s_handler_add(server->window, hndl);        /* resize ul */        hndl = server->whndl[13];       	hndl->type = MOUSE_HANDLER;	hndl->mouse.x = server->client[id].form[TOP_L].x + server->theme.form[v][TOP_L].handler.x;	hndl->mouse.y = server->client[id].form[TOP_L].y + server->theme.form[v][TOP_L].handler.y;	hndl->mouse.w = server->theme.form[v][TOP_L].handler.w;	hndl->mouse.h = server->theme.form[v][TOP_L].handler.h;	hndl->mouse.button = MOUSE_LEFTBUTTON;	hndl->mouse.p = s_server_window_btn_resize_up_left;	hndl->mouse.o = s_server_window_btn_resize_ul_o;	hndl->mouse.oh = s_server_window_btn_resize_oh;	s_handler_add(server->window, hndl);        /* resize ur */        hndl = server->whndl[14];       	hndl->type = MOUSE_HANDLER;	hndl->mouse.x = server->client[id].form[TOP_R].x;	hndl->mouse.y = server->client[id].form[TOP_R].y + server->theme.form[v][TOP_R].handler.y;	hndl->mouse.w = server->theme.form[v][TOP_R].handler.w;	hndl->mouse.h = server->theme.form[v][TOP_R].handler.h;	hndl->mouse.button = MOUSE_LEFTBUTTON;	hndl->mouse.p = s_server_window_btn_resize_up_right;	hndl->mouse.o = s_server_window_btn_resize_ur_o;	hndl->mouse.oh = s_server_window_btn_resize_oh;	s_handler_add(server->window, hndl);        /* resize l */        hndl = server->whndl[15];       	hndl->type = MOUSE_HANDLER;	hndl->mouse.x = server->client[id].form[LEFT].x + server->theme.form[v][LEFT].handler.x;	hndl->mouse.y = server->client[id].form[LEFT].y;	hndl->mouse.w = server->theme.form[v][LEFT].handler.w;	hndl->mouse.h = server->client[id].form[LEFT].h;	hndl->mouse.button = MOUSE_LEFTBUTTON;	hndl->mouse.p = s_server_window_btn_resize_left;	hndl->mouse.o = s_server_window_btn_resize_l_o;	hndl->mouse.oh = s_server_window_btn_resize_oh;	s_handler_add(server->window, hndl);        /* resize r */        hndl = server->whndl[16];       	hndl->type = MOUSE_HANDLER;	hndl->mouse.x = server->client[id].form[RIGHT].x;	hndl->mouse.y = server->client[id].form[RIGHT].y;	hndl->mouse.w = server->theme.form[v][RIGHT].handler.w;	hndl->mouse.h = server->client[id].form[RIGHT].h;	hndl->mouse.button = MOUSE_LEFTBUTTON;	hndl->mouse.p = s_server_window_btn_resize_right;	hndl->mouse.o = s_server_window_btn_resize_r_o;	hndl->mouse.oh = s_server_window_btn_resize_oh;	s_handler_add(server->window, hndl);        /* resize d */        hndl = server->whndl[17];       	hndl->type = MOUSE_HANDLER;	hndl->mouse.x = server->client[id].form[BTM].x;	hndl->mouse.y = server->client[id].form[BTM].y;	hndl->mouse.w = server->client[id].form[BTM].w;	hndl->mouse.h = server->theme.form[v][BTM].handler.h;	hndl->mouse.button = MOUSE_LEFTBUTTON;	hndl->mouse.p = s_server_window_btn_resize_down;	hndl->mouse.o = s_server_window_btn_resize_d_o;	hndl->mouse.oh = s_server_window_btn_resize_oh;	s_handler_add(server->window, hndl);        /* resize dl */        hndl = server->whndl[18];       	hndl->type = MOUSE_HANDLER;	hndl->mouse.x = server->client[id].form[BTM_L].x + server->theme.form[v][BTM_L].handler.x;	hndl->mouse.y = server->client[id].form[BTM_L].y;	hndl->mouse.w = server->theme.form[v][BTM_L].handler.w;	hndl->mouse.h = server->theme.form[v][BTM_L].handler.h;	hndl->mouse.button = MOUSE_LEFTBUTTON;	hndl->mouse.p = s_server_window_btn_resize_down_left;	hndl->mouse.o = s_server_window_btn_resize_dl_o;	hndl->mouse.oh = s_server_window_btn_resize_oh;	s_handler_add(server->window, hndl);        /* resize dr */        hndl = server->whndl[19];       	hndl->type = MOUSE_HANDLER;	hndl->mouse.x = server->client[id].form[BTM_R].x;	hndl->mouse.y = server->client[id].form[BTM_R].y;	hndl->mouse.w = server->theme.form[v][BTM_R].handler.w;	hndl->mouse.h = server->theme.form[v][BTM_R].handler.h;	hndl->mouse.button = MOUSE_LEFTBUTTON;	hndl->mouse.p = s_server_window_btn_resize_down_right;	hndl->mouse.o = s_server_window_btn_resize_dr_o;	hndl->mouse.oh = s_server_window_btn_resize_oh;	s_handler_add(server->window, hndl);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?