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 + -
显示快捷键?