⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.c

📁 CS架构的多平台的GUI系统
💻 C
字号:
/***************************************************************************    begin                : Mon May 23 2005    copyright            : (C) 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 <stdio.h>#include <stdlib.h>#include "xynth_.h"static void timer1_cb (s_window_t *window, s_timer_t *timer){	debugf(DCLI, "[%d]", window->client->id);	s_thread_mutex_lock(window->timers->mut);	if (s_list_get_pos(window->timers->timers, timer) >= 0) {		debugf(DCLI, "[%d] found!", window->client->id);	}	s_thread_mutex_unlock(window->timers->mut);}static void timer0_cb (s_window_t *window, s_timer_t *timer){	debugf(DCLI, "[%d]", window->client->id);	s_thread_mutex_lock(window->timers->mut);	if (s_list_get_pos(window->timers->timers, timer) >= 0) {		debugf(DCLI, "[%d] found!", window->client->id);	}	s_thread_mutex_unlock(window->timers->mut);	s_timer_del(window, timer);	s_timer_uninit(timer);}static void timer_handler_p (s_window_t *window, s_event_t *event, s_handler_t *handler){	s_timer_t *timer;	s_timer_init(&timer);	timer->timeval = 2000;	timer->cb = timer0_cb;	s_timer_add(window, timer);}int main (int argc, char *argv[]){	int x = 60;	int y = 60;	int w = 400;	int h = 300;	int mw = 1000;	int mh = 1000;	char *box;	s_timer_t *timer;	s_handler_t *hndl;	s_window_t *window;	s_client_init(&window);	s_window_new(window, WINDOW_MAIN, NULL);	mw = window->surface->width;	mh = window->surface->height;	box = (char *) s_malloc(sizeof(char) * (mw / 4) * (mh / 4) * window->surface->bytesperpixel);	s_window_set_title(window, "Demo - %s", argv[0]);	s_window_set_coor(window, 0, x, y, w, h);	s_fillbox(window->surface, mw/4, mh/4, mw/4, mh/4, s_rgbcolor(window->surface, 255, 0, 0));	s_fillbox(window->surface, mw/2, mh/4, mw/4, mh/4, s_rgbcolor(window->surface, 0, 255, 0));	s_fillbox(window->surface, mw/4, mh/2, mw/4, mh/4, s_rgbcolor(window->surface, 0, 0, 255));	s_fillbox(window->surface, mw/2, mh/2, mw/4, mh/4, s_rgbcolor(window->surface, 255, 255, 255));	s_getbox(window->surface, mw/4, mh/4, mw/4, mh/4, box);	s_putbox(window->surface, 0, 0, mw/4, mh/4, box);	s_free(box);	s_fillbox(window->surface, 0, 0, 20, 20, s_rgbcolor(window->surface, 222, 222, 222));	s_fillbox(window->surface, 2, 2, 16, 16, s_rgbcolor(window->surface, 0, 0, 0));	s_handler_init(&hndl);	hndl->type = MOUSE_HANDLER;	hndl->mouse.x = 2;	hndl->mouse.y = 2;	hndl->mouse.w = 16;	hndl->mouse.h = 16;	hndl->mouse.p = timer_handler_p;	hndl->mouse.button = MOUSE_LEFTBUTTON;	s_handler_add(window, hndl);	s_timer_init(&timer);	timer->timeval = 2000;	timer->cb = timer0_cb;	s_timer_add(window, timer);	s_timer_init(&timer);	timer->timeval = 2500;	timer->cb = timer1_cb;	s_timer_add(window, timer);	s_window_show(window);	s_client_main(window);	return 0;}#if defined(SINGLE_APP)s_single_app_t single_timer = {	timer_main,	1,	{"timer"}};#endif

⌨️ 快捷键说明

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