window.c
来自「CS架构的多平台的GUI系统」· C语言 代码 · 共 113 行
C
113 行
/*************************************************************************** begin : Fri Feb 21 2003 copyright : (C) 2003 - 2005 by Alper Akcan email : distchx@yahoo.com ***************************************************************************//*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as * * published by the Free Software Foundation; either version 2.1 of the * * License, or (at your option) any later version. * * * ***************************************************************************/#include "xynth_.h"void s_window_set_title (s_window_t *window, char *fmt, ...){ int n; va_list ap; int size = 1; if (window->client->title != NULL) { s_free(window->client->title); } window->client->title = (char *) s_malloc(sizeof(char) * size); while (1) { va_start(ap, fmt); n = vsnprintf(window->client->title, size, fmt, ap); va_end(ap); if ((n > -1) && (n < size)) { break; } if (n > -1) { size = n + 1; } else { size *= 2; } window->client->title = (char *) s_realloc(window->client->title, size); } s_socket_request(window, SOC_DATA_TITLE);}void s_window_form_draw (s_window_t *window){ if (window->type & NO_FORM) { return; } s_socket_request(window, SOC_DATA_FORMDRAW);}void s_window_hide (s_window_t *window){ s_socket_request(window, SOC_DATA_HIDE); window->surface->mode &= ~SURFACE_REAL;}void s_window_show (s_window_t *window){ s_socket_request(window, SOC_DATA_SHOW); window->surface->mode |= SURFACE_REAL;}void s_window_set_coor (s_window_t *window, int form, int x, int y, int w, int h){ window->surface->buf.x = x; window->surface->buf.y = y; window->surface->buf.w = w; window->surface->buf.h = h; s_socket_request(window, (form & NO_FORM) ? SOC_DATA_CONFIGURE_NOFORM : SOC_DATA_CONFIGURE);}void s_window_set_resizeable (s_window_t *window, int resizeable){ window->client->resizeable = resizeable; s_socket_request(window, SOC_DATA_CONFIGURE_NOFORM);}void s_window_set_alwaysontop (s_window_t *window, int alwaysontop){ window->client->alwaysontop = alwaysontop; s_socket_request(window, SOC_DATA_CONFIGURE_NOFORM);}int s_window_new (s_window_t *window, S_WINDOW type, s_window_t *parent){ if (!(type & (WINDOW_MAIN | WINDOW_CHILD | WINDOW_TEMP))) { goto err; } window->type = type; if (window->surface->width <= 0) { window->surface->width = window->surface->linear_buf_width; } if (window->surface->height <= 0) { window->surface->height = window->surface->linear_buf_height; } if (window->type & (WINDOW_TEMP | WINDOW_CHILD)) { window->parent = parent; } else { window->parent = NULL; } s_socket_request(window, SOC_DATA_NEW);// window->surface->need_expose = SURFACE_NEEDSTREAM; s_surface_create(window); return 0;err: return 1;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?