Beispiel #1
0
void s_event_parse_mouse (s_window_t *window, s_event_t *event)
{
        int pos;
	s_handler_t *work;
        pos = 0;
	s_thread_mutex_lock(window->handlers->mut);
	while (!s_list_eol(window->handlers->list, pos)) {
		work = (s_handler_t *) s_list_get(window->handlers->list, pos++);
		if (work->type != MOUSE_HANDLER) {
			continue;
		}
		if (s_event_parse_handler_over(window, event, work) == 0) {
			break;
		}
	}
	pos = 0;
	while (!s_list_eol(window->handlers->list, pos)) {
		work = (s_handler_t *) s_list_get(window->handlers->list, pos++);
		if (work->type != MOUSE_HANDLER) {
			continue;
		}
		if (s_event_parse_handler_notover(window, event, work) == 0) {
			break;
		}
	}
	s_thread_mutex_unlock(window->handlers->mut);
	
	return;
}
Beispiel #2
0
void taskbar_atevent (s_window_t *window, s_event_t *event)
{
        int pos = 0;
        tbar_data_t *tbar_data;
        tbar_progs_t *tbar_progs;
        s_desktop_client_t *desktopc;
	
	if (event->type & EVENT_TYPE_MOUSE_EXIT) {
	}

	if (!(event->type & EVENT_TYPE_DESKTOP)) {
		return;
	}

        tbar_data = (tbar_data_t *) window->data;
        tbar_progs = (tbar_progs_t *) tbar_data->tbar_progs;

	while (!s_list_eol(tbar_progs->desktop->clients, 0)) {
		desktopc = (s_desktop_client_t *) s_list_get(tbar_progs->desktop->clients, 0);
		s_list_remove(tbar_progs->desktop->clients, 0);
		s_free(desktopc->title);
		s_free(desktopc);
	}
	while (!s_list_eol(event->desktop->clients, pos)) {
		desktopc = (s_desktop_client_t *) s_list_get(event->desktop->clients, pos);
		if ((desktopc->id != window->id) &&
		    (desktopc->id != window->parent->id)) {
			s_list_remove(event->desktop->clients, pos);
			s_list_add(tbar_progs->desktop->clients, desktopc, -1);
		} else {
			pos++;
		}
	}
	taskbar_progs_draw(window);
}
Beispiel #3
0
static void lxynth_shutdown_driver (void)
{
	DEBUGF ("%s (%s:%d)\n", __FUNCTION__, __FILE__, __LINE__);

        if (lxynth_root->running) {
		lxynth_root->running = 0;
		s_window_quit(lxynth_root->window);
		s_thread_join(lxynth_root->tid, NULL);
		kill_timer(lxynth_root->timerid);
	}

	while (!s_list_eol(lxynth_root->eventq->list, 0)) {
		s_event_t *event = s_list_get(lxynth_root->eventq->list, 0);
		s_list_remove(lxynth_root->eventq->list, 0);
		s_event_uninit(event);
	}
	s_free(lxynth_root->eventq->list);
	s_thread_mutex_destroy(lxynth_root->eventq->mut);
	s_free(lxynth_root->eventq);

	while (!s_list_eol(lxynth_root->gd->list, 0)) {
		struct graphics_device *gd = s_list_get(lxynth_root->gd->list, 0);
		lxynth_device_t *wd = (lxynth_device_t *) gd->driver_data;
		s_list_remove(lxynth_root->gd->list, 0);
		s_free(wd->title);
		s_surface_destroy(wd->surface);
		s_free(wd);
		s_free(gd);
	}
	s_free(lxynth_root->gd->list);
	s_thread_mutex_destroy(lxynth_root->gd->mut);
	s_free(lxynth_root->gd);

	s_free(lxynth_root);
}
Beispiel #4
0
int s_dir_print (s_dir_t *dir)
{
        int i;
        int j;
        int l;
        s_dir_t *d;
        s_file_t *f;
        
        l = s_dir_get_level(dir);
        if (l == 0) {
		printf("+ %s\n", dir->path);
	} else {
		for (i = 0; i < l - 1; i++) {
			if (s_dir_has_trailer(dir, i)) {
				printf("|   ");
			} else {
				printf("    ");
			}
		}
		printf("|---+ %s\n", dir->name);
	}
        
        i = 0;
        while (!s_list_eol(dir->dirs, i)) {
		d = (s_dir_t *) s_list_get(dir->dirs, i);
		s_dir_print(d);
		i++;
	}

        i = 0;
        while (!s_list_eol(dir->files, i)) {
		f = (s_file_t *) s_list_get(dir->files, i);
		for (j = 0; j < l; j++) {
			if (s_dir_has_trailer(dir, j)) {
				printf("|   ");
			} else {
				printf("    ");
			}
		}
		printf("|---- %s\n", f->name);
		i++;
	}

	if (dir->dirs->nb_elt || dir->files->nb_elt) {
		for (i = 0; i < l; i++) {
			if (s_dir_has_trailer(dir, i)) {
				printf("|   ");
			} else {
				printf("    ");
			}
		}
		printf("\n");
	}
	
	return 0;
}
Beispiel #5
0
void taskbar_progs_draw (s_window_t *window)
{
        int x;
        int pos;
        int w = 0;
        s_surface_t *srf;
        tbar_data_t *tbar_data;
        tbar_progs_t *tbar_progs;
        s_desktop_client_t *desktopc;

        pos = 0;
        tbar_data = (tbar_data_t *) window->data;
        tbar_progs = (tbar_progs_t *) tbar_data->tbar_progs;

	if (tbar_progs->desktop->clients->nb_elt > 0) {
		w = ((tbar_progs->rect.w / tbar_progs->desktop->clients->nb_elt) > 125) ? 125 : (tbar_progs->rect.w / tbar_progs->desktop->clients->nb_elt);
	}

	if (s_surface_create(&srf, tbar_progs->rect.w, tbar_progs->rect.h, window->surface->bitsperpixel)) {
		return;
	}

	for (x = 0; x <= tbar_progs->rect.w; x++) {
		s_putboxpart(srf, x, 0, 1, tbar_progs->rect.h, 1, 30, tbar_progs->tbar_img->buf, 0, tbar_progs->rect.y);
	}

	while (!s_list_eol(tbar_progs->desktop->clients, pos)) {
		desktopc = (s_desktop_client_t *) s_list_get(tbar_progs->desktop->clients, pos);
		taskbar_progs_draw_client(tbar_progs, srf, desktopc, w * pos, 0, w, tbar_progs->rect.h);
		pos++;
	}

        s_putbox(window->surface, tbar_progs->rect.x, tbar_progs->rect.y, tbar_progs->rect.w, tbar_progs->rect.h, srf->vbuf);
        s_surface_destroy(srf);
}
Beispiel #6
0
int w_frame_set_image (w_object_t *object, unsigned int style, unsigned int rotation, unsigned int nimgs, char **imgs)
{
	int pos;
	char *file;
        w_frame_t *frame;
	w_frame_image_t *fimg;
        frame = (w_frame_t *) object->data[OBJECT_FRAME];
	for (pos = 0; !s_list_eol(frame->images, pos); pos++) {
		fimg = (w_frame_image_t *) s_list_get(frame->images, pos);
		if (fimg->style == style) {
			s_list_remove(frame->images, pos);
			w_frame_image_uninit(fimg);
			break;
		}
	}
	for (pos = 0; pos < nimgs; pos++) {
		if (access(imgs[pos], R_OK)) {
			return -1;
		}
	}
	w_frame_image_init(&fimg);
	fimg->style = style;
	fimg->rotation = rotation;
	for (pos = 0; pos < nimgs; pos++) {
		file = imgs[pos];
#if defined(WIDGET_OPTIMIZE_MEMORY) && WIDGET_OPTIMIZE_MEMORY >= 1
#else
		w_window_image_add(object->window, file);
#endif
		s_list_add(fimg->names, strdup(file), -1);
	}
	s_list_add(frame->images, fimg, -1);
	return 0;
}
Beispiel #7
0
void header_generate_function (s_xml_node_t *node, FILE *g_header)
{
	int p;
	s_xml_node_t *tmp;
	if (strcmp(node->name, "draw") == 0) {
		fprintf(g_header, "void %s (w_object_t *object);\n", node->value);
	} else if (strcmp(node->name, "event") == 0) {
		fprintf(g_header, "void %s (w_object_t *object, s_event_t *event);\n", node->value);
	} else if (strcmp(node->name, "onload") == 0) {
		fprintf(g_header, "void %s (w_object_t *object);\n", node->value);
	} else if (strcmp(node->name, "unload") == 0) {
		fprintf(g_header, "void %s (w_object_t *object);\n", node->value);
	} else if (strcmp(node->name, "pressed") == 0) {
		fprintf(g_header, "void %s (w_object_t *object, int button);\n", node->value);
	} else if (strcmp(node->name, "released") == 0) {
		fprintf(g_header, "void %s (w_object_t *object, int button);\n", node->value);
	} else if (strcmp(node->name, "changed") == 0) {
		fprintf(g_header, "void %s (w_object_t *object, int state);\n", node->value);
	}
	p = 0;
	while (!s_list_eol(node->nodes, p)) {
		tmp = (s_xml_node_t *) s_list_get(node->nodes, p);
		header_generate_function(tmp, g_header);
		p++;
	}
}
Beispiel #8
0
static void lxynth_timer (void *arg)
{
        int x = 0;
        int y = 0;
        int k = 0;
        int flag = 0;
        s_event_t *event;

	s_thread_mutex_lock(lxynth_root->eventq->mut);
        while (!s_list_eol(lxynth_root->eventq->list, 0)) {
		event = (s_event_t *) s_list_get(lxynth_root->eventq->list, 0);
		s_list_remove(lxynth_root->eventq->list, 0);
                switch (event->type & EVENT_MASK) {
			case QUIT_EVENT:	break;
			case MOUSE_EVENT:	lxynth_event_parse_mouse(event);	break;
			case KEYBD_EVENT:	lxynth_event_parse_keybd(event);	break;
			case CONFIG_EVENT:	lxynth_event_parse_config(event);	break;
		}
		s_event_uninit(event);
	}
	s_thread_mutex_unlock(lxynth_root->eventq->mut);

        if (lxynth_root->running) {
		lxynth_root->timerid = install_timer(20, lxynth_timer, NULL);
	}
}
Beispiel #9
0
void taskbar_atexit (s_window_t *window)
{
        tbar_data_t *tbar_data;
        tbar_progs_t *tbar_progs;
        tbar_clock_t *tbar_clock;
        s_desktop_client_t *desktopc;

        tbar_data = (tbar_data_t *) window->data;
        tbar_progs = (tbar_progs_t *) tbar_data->tbar_progs;
        tbar_clock = (tbar_clock_t *) tbar_data->tbar_clock;

        s_font_uninit(tbar_clock->font);
        s_font_uninit(tbar_progs->prog_font);
        s_image_uninit(tbar_progs->tbar_img);
        s_image_uninit(tbar_progs->prog_img[0]);
        s_image_uninit(tbar_progs->prog_img[1]);

	while (!s_list_eol(tbar_progs->desktop->clients, 0)) {
		desktopc = (s_desktop_client_t *) s_list_get(tbar_progs->desktop->clients, 0);
		s_list_remove(tbar_progs->desktop->clients, 0);
		s_free(desktopc->title);
		s_free(desktopc);
	}
	s_free(tbar_progs->desktop->clients);
	s_free(tbar_progs->desktop);
	s_free(tbar_progs);
	s_free(tbar_data->tbar_clock);
	taskbar_clean_smenu(tbar_data->tbar_smenu->progs);
	s_image_uninit(tbar_data->tbar_smenu->img);
	s_free(tbar_data->tbar_smenu);

	s_free(tbar_data);
}
Beispiel #10
0
int w_frame_image_uninit (w_frame_image_t *fimg)
{
	char *name;
	s_image_t *img;
	while (!s_list_eol(fimg->images, 0)) {
		img = (s_image_t *) s_list_get(fimg->images, 0);
		s_list_remove(fimg->images, 0);
		s_image_uninit(img);
	}
	s_list_uninit(fimg->images);
	while (!s_list_eol(fimg->names, 0)) {
		name = (char *) s_list_get(fimg->names, 0);
		s_list_remove(fimg->names, 0);
		s_free(name);
	}
	s_list_uninit(fimg->names);
	s_free(fimg);
	return 0;
}
Beispiel #11
0
int s_config_uninit (s_config_t *cfg)
{
        while (!s_list_eol(cfg->category, 0)) {
		s_config_cat_t *cat = (s_config_cat_t *) s_list_get(cfg->category, 0);
		s_list_remove(cfg->category, 0);
		s_config_category_uninit(cat);
	}
        s_list_uninit(cfg->category);
	s_free(cfg);
	return 0;
}
Beispiel #12
0
void w_clistbox_uninit (w_object_t *object)
{
	w_clistbox_t *lb;
	w_clistbox_item_t *li;
	w_clistbox_item_image_t *ii;
	lb = object->data[OBJECT_CLISTBOX];
	while (!s_list_eol(lb->items, 0)) {
		li = (w_clistbox_item_t *) s_list_get(lb->items, 0);
		s_list_remove(lb->items, 0);
		w_clistbox_item_uninit(li);
	}
	while (!s_list_eol(lb->item_images, 0)) {
		ii = (w_clistbox_item_image_t *) s_list_get(lb->item_images, 0);
		s_list_remove(lb->item_images, 0);
		w_clistbox_item_image_uninit(ii);
	}
	s_list_uninit(lb->item_images);
	s_list_uninit(lb->items);
	w_frame_uninit(object);
	s_free(lb);
}
Beispiel #13
0
int s_config_category_uninit (s_config_cat_t *cat)
{
        while (!s_list_eol(cat->variable, 0)) {
		s_config_var_t *var = (s_config_var_t *) s_list_get(cat->variable, 0);
		s_list_remove(cat->variable, 0);
		s_config_variable_uninit(var);
	}
        s_list_uninit(cat->variable);
        s_free(cat->name);
	s_free(cat);
	return 0;
}
Beispiel #14
0
int s_dir_has_trailer (s_dir_t *dir, int level)
{
        int i;
        int l;
        int p;
        int r;
	s_dir_t *d = dir;

	l = s_dir_get_level(dir);
	i = l - level;

	while (i > 1) {
		d = d->up;
		i--;
	}

	p = s_dir_find_pos(d);

        r = !s_list_eol(d->up->dirs, p + 1) || !s_list_eol(d->up->files, 0);
        return r;
}
Beispiel #15
0
static void button0_pressed (w_object_t *object, int buttonp)
{
	int i;
	w_object_t *obj;
	area_hide = (area_hide + 1) % 2;
	if (area_hide) {
		for (i = 0; !s_list_eol(object->parent->childs, i); i++) {
			obj = (w_object_t *) s_list_get(object->parent->childs, i);
			if (obj != object) {
				w_object_hide(obj);
			}
		}
	} else {
		for (i = 0; !s_list_eol(object->parent->childs, i); i++) {
			obj = (w_object_t *) s_list_get(object->parent->childs, i);
			if (obj != object) {
				w_object_show(obj);
			}
		}
	}
}
Beispiel #16
0
void code_parse_element (s_xml_node_t *node, s_xml_node_t *style)
{
	int p;
	s_xml_node_t *tmp;
	s_xml_node_t *dmp;
	s_xml_node_t *chl;
	s_xml_node_attr_t *sid;
	s_xml_node_attr_t *stype;
	s_xml_node_attr_t *ntype;
	if (style == NULL) {
		return;
	}
	for (p = 0; !s_list_eol(node->nodes, p); p++) {
    		tmp = (s_xml_node_t *) s_list_get(node->nodes, p);
    		code_parse_element(tmp, style);
	}
	ntype = s_xml_node_get_attr(node, "type");
	if (strcmp(node->name, "element") == 0 && ntype && ntype->value != NULL) {
	    	for (p = 0; !s_list_eol(style->nodes, p); p++) {
	    		tmp = (s_xml_node_t *) s_list_get(style->nodes, p);
	    		sid = s_xml_node_get_attr(tmp, "id");
	    		stype = s_xml_node_get_attr(tmp, "type");
	    		if (strcmp(tmp->name, "element") == 0 && sid && strcmp(sid->value, ntype->value) == 0) {
	    		    	s_xml_node_dublicate(tmp, &dmp);
	    		    	s_free(node->name);
	    		    	s_free(ntype->value);
	    		    	node->name = strdup("object");
	    		    	ntype->value = (stype->value) ? strdup(stype->value) : NULL;
	    		    	while (!s_list_eol(dmp->nodes, 0)) {
	    		    		chl = (s_xml_node_t *) s_list_get(dmp->nodes, dmp->nodes->nb_elt - 1);
	    		    		chl->parent = node;
	    		    		s_list_add(node->nodes, chl, 0);
	    		    		s_list_remove(dmp->nodes, dmp->nodes->nb_elt - 1);
	    		    	}
	    		    	s_xml_node_uninit(dmp);
	    		}
	    	}
	}
}
Beispiel #17
0
int s_dirs_uninit (s_list_t *dirs)
{
	s_dir_t *dir;

	while (!s_list_eol(dirs, 0)) {
		dir = (s_dir_t *) s_list_get(dirs, 0);
		s_list_remove(dirs, 0);
		s_dir_uninit(dir);
	}
	free(dirs);

	return 0;
}
Beispiel #18
0
int s_files_uninit (s_list_t *files)
{
	s_file_t *file;

	while (!s_list_eol(files, 0)) {
		file = (s_file_t *) s_list_get(files, 0);
		s_list_remove(files, 0);
		s_file_uninit(file);
	}
	free(files);

	return 0;
}
Beispiel #19
0
int s_image_layers_uninit (s_image_t *img)
{
	s_image_t *img_;

	while (!s_list_eol(img->layers, 0)) {
		img_ = (s_image_t *) s_list_get(img->layers, 0);
		s_list_remove(img->layers, 0);
		s_image_layer_uninit(img_);
	}
	s_list_uninit(img->layers);
	img->layers = NULL;

	return 0;
}
Beispiel #20
0
void w_frame_uninit (w_object_t *object)
{
	w_frame_t *frame;
	w_frame_image_t *fimg;
	frame = (w_frame_t *) object->data[OBJECT_FRAME];
	w_object_uninit(object);
	while (!s_list_eol(frame->images, 0)) {
		fimg = s_list_get(frame->images, 0);
		s_list_remove(frame->images, 0);
		w_frame_image_uninit(fimg);
	}
	s_list_uninit(frame->images);
	s_free(frame);
}
Beispiel #21
0
void taskbar_clean_smenu (s_list_t *list)
{
	smenu_prog_t *p;
	while (!s_list_eol(list, 0)) {
		p = s_list_get(list, 0);
		s_list_remove(list, 0);
		s_free(p->name);
		s_free(p->icon);
		s_free(p->menu);
		s_free(p->exec);
		taskbar_clean_smenu(p->progs);
		s_free(p);
	}
	s_free(list);
}
Beispiel #22
0
static void button1_pressed (w_object_t *object, int button)
{
	int i;
	int w;
	int h;
	w_object_t *obj;
	w = object->window->window->surface->buf->w;
	h = object->window->window->surface->buf->h;
	for (i = 0; !s_list_eol(area->object->childs, i); i++) {
		obj = (w_object_t *) s_list_get(area->object->childs, i);
		w_object_move(obj, (rand() + 1) % (w - 10), (rand() + 1) % (h - 100),
		                   (rand() + 1) % (w - 10), (rand() + 1) % (h - 100));
	}
	w_signal_send(object, object, button1_signal_func, NULL);
}
Beispiel #23
0
int s_handlers_uninit (s_window_t *window)
{
	s_handler_t *hndl;

	s_thread_mutex_lock(window->handlers->mut);
	while (!s_list_eol(window->handlers->list, 0)) {
		hndl = (s_handler_t *) s_list_get(window->handlers->list, 0);
		s_list_remove(window->handlers->list, 0);
		s_handler_uninit(hndl);
	}
	s_thread_mutex_unlock(window->handlers->mut);
	s_thread_mutex_destroy(window->handlers->mut);
	s_list_uninit(window->handlers->list);
	s_free(window->handlers);

	return 0;
}
Beispiel #24
0
static void lxynth_shutdown_device (struct graphics_device *dev)
{
        int acc = 0;
        int pos = 0;
	lxynth_device_t *wd;
	struct graphics_device *gd;

	DEBUGF ("%s (%s:%d)\n", __FUNCTION__, __FILE__, __LINE__);

	s_thread_mutex_lock(lxynth_root->gd->mut);
	while (!s_list_eol(lxynth_root->gd->list, pos)) {
		gd = (struct graphics_device *) s_list_get(lxynth_root->gd->list, pos);
		if (gd == dev) {
			s_list_remove(lxynth_root->gd->list, pos);
			if (lxynth_root->gd->list->nb_elt > 0) {
				lxynth_root->gd->active = (struct graphics_device *) s_list_get(lxynth_root->gd->list, 0);
				acc = 1;
			} else {
				lxynth_root->gd->active = NULL;
			}
			break;
		}
		pos++;
	}
	unregister_bottom_half(lxynth_surface_register_update, dev);
	wd = (lxynth_device_t *) dev->driver_data;
	s_free(wd->title);
	s_surface_destroy(wd->surface);
	s_free(wd);
	s_free(dev);
	s_thread_mutex_unlock(lxynth_root->gd->mut);

	if (acc && lxynth_root->running) {
		char *title;
		struct rect r;
		r.x1 = 0;
		r.y1 = 0;
		r.x2 = lxynth_root->window->surface->buf->w;
		r.y2 = lxynth_root->window->surface->buf->h;
		title = strdup(((lxynth_device_t *) lxynth_root->gd->active->driver_data)->title);
		lxynth_set_title(lxynth_root->gd->active, title);
		lxynth_root->gd->active->resize_handler(lxynth_root->gd->active);
		lxynth_root->gd->active->redraw_handler(lxynth_root->gd->active, &r);
		s_free(title);
	}
}
Beispiel #25
0
int w_clistbox_clear (w_object_t *object)
{
	w_clistbox_t *lb;
	w_clistbox_item_t *li;
	lb = object->data[OBJECT_CLISTBOX];
	while (!s_list_eol(lb->items, 0)) {
		li = s_list_get(lb->items, 0);
		s_list_remove(lb->items, 0);
		w_clistbox_item_uninit(li);
	}
	lb->dirty = 1;
	lb->height = 0;
	lb->yoffset = 0;
	lb->active = 0;
	lb->pactive = -1;
	w_object_draw(object);
	return 0;
}
Beispiel #26
0
int w_clistbox_item_init (w_object_t *listbox, w_clistbox_item_t **listbox_item)
{
	int pos;
	w_clistbox_t *lb;
	w_clistbox_item_t *li;
	w_clistbox_item_image_t *ii;
	lb = listbox->data[OBJECT_CLISTBOX];
	li = (w_clistbox_item_t *) s_malloc(sizeof(w_clistbox_item_t));
	memset(li, 0, sizeof(w_clistbox_item_t));
	w_frame_init(listbox->window, &(li->frame), lb->inactiveshape | lb->inactiveshadow, listbox);
	for (pos = 0; !s_list_eol(lb->item_images, pos); pos++) {
		ii = (w_clistbox_item_image_t *) s_list_get(lb->item_images, pos);
		w_frame_set_image(li->frame->object, ii->style, ii->rotation, ii->nimages, ii->images);
	}
	w_object_show(li->frame->object);
	*listbox_item = li;
	return 0;
}
Beispiel #27
0
int s_eventq_uninit (s_window_t *window)
{
        s_event_t *e;

	s_thread_mutex_destroy(window->eventq->mut);
	s_thread_cond_destroy(window->eventq->cond);

	while (!s_list_eol(window->eventq->queue, 0)) {
		e = (s_event_t *) s_list_get(window->eventq->queue, 0);
		s_list_remove(window->eventq->queue, 0);
		s_event_uninit(e);
	}
	s_free(window->eventq->queue);

        s_free(window->eventq);

	return 0;
}
Beispiel #28
0
int s_dir_sort (s_dir_t *dir)
{
	int i;
	int j;

        s_dir_t *d;
	s_dir_t *di;
	s_dir_t *dj;

	s_file_t *fi;
	s_file_t *fj;

	for (i = 0; i < dir->dirs->nb_elt - 1; i++) {
		for (j = 0; j < dir->dirs->nb_elt - 1; j++) {
			di = (s_dir_t *) s_list_get(dir->dirs, j);
			dj = (s_dir_t *) s_list_get(dir->dirs, j + 1);
			if (strcmp(dj->path, di->path) < 0) {
				s_list_remove(dir->dirs, j);
				s_list_add(dir->dirs, di, j + 1);
			}
		}
	}

	for (i = 0; i < dir->files->nb_elt - 1; i++) {
		for (j = 0; j < dir->files->nb_elt - 1; j++) {
			fi = (s_file_t *) s_list_get(dir->files, j);
			fj = (s_file_t *) s_list_get(dir->files, j + 1);
			if (strcmp(fj->path, fi->path) < 0) {
				s_list_remove(dir->files, j);
				s_list_add(dir->files, fi, j + 1);
			}
		}
	}

	i = 0;
	while (!s_list_eol(dir->dirs, i)) {
		d = (s_dir_t *) s_list_get(dir->dirs, i);
		s_dir_sort(d);
		i++;
	}

	return 0;
}
Beispiel #29
0
s_pollfd_t * s_pollfd_find (s_window_t *window, int fd)
{
	int pos;
	s_pollfd_t *pfd;
	s_pollfd_t *ret;
	s_thread_mutex_lock(window->pollfds->mut);
	pos = 0;
	ret = NULL;
	while (!s_list_eol(window->pollfds->list, pos)) {
		pfd = (s_pollfd_t *) s_list_get(window->pollfds->list, pos);
		if (pfd->fd == fd) {
			ret = pfd;
			break;
		}
		pos++;
	}
	s_thread_mutex_unlock(window->pollfds->mut);
	return ret;
}
Beispiel #30
0
int w_listbox_item_init (w_object_t *listbox, w_listbox_item_t **listbox_item)
{
    int pos;
    w_listbox_t *lb;
    w_listbox_item_t *li;
    w_listbox_item_image_t *ii;
    lb = listbox->data[OBJECT_LISTBOX];
    li = (w_listbox_item_t *) s_malloc(sizeof(w_listbox_item_t));
    memset(li, 0, sizeof(w_listbox_item_t));
    w_textbox_init(listbox->window, &(li->textbox), listbox);
    w_textbox_set_size(li->textbox->object, lb->itemheight - 8);
    for (pos = 0; !s_list_eol(lb->item_images, pos); pos++) {
        ii = (w_listbox_item_image_t *) s_list_get(lb->item_images, pos);
        w_textbox_set_image(li->textbox->object, ii->style, ii->rotation, ii->nimages, ii->images);
    }
    w_object_show(li->textbox->object);
    *listbox_item = li;
    return 0;
}