Пример #1
0
gint display_one_judoka(struct judoka *j)
{

    GtkTreeIter iter, parent, child;
    struct judoka *parent_data;
    guint ret = -1;

    if (j->visible == FALSE) {
        /* category row */
        if (find_iter(&iter, j->index)) {
            /* existing category */
            put_data_by_iter(j, &iter);
            return -1;
        }

        return set_category(&parent, j->index, (gchar *)j->last, 
                            j->belt, j->birthyear, j->deleted);
    }

    if (find_iter(&iter, j->index)) {
        /* existing judoka */

        if (gtk_tree_model_iter_parent((GtkTreeModel *)current_model, &parent, &iter) == FALSE) {
            /* illegal situation */
            g_print("ILLEGAL\n");
            if (j->category)
                ret = set_category(&parent, 0, 
                                   (gchar *)j->category, 
                                   0, 0, 0);
        } 

        parent_data = get_data_by_iter(&parent);

        if (j->category && strcmp(parent_data->last, j->category)) {
            /* category has changed */
            gtk_tree_store_remove((GtkTreeStore *)current_model, &iter);
            ret = set_category(&parent, 0, (gchar *)j->category, 0, 0, 0);
            gtk_tree_store_append((GtkTreeStore *)current_model, 
                                  &iter, &parent);
            put_data_by_iter(j, &iter);
        } else {
            /* current row is ok */
            put_data_by_iter(j, &iter);
        }

        free_judoka(parent_data);
    } else {
        /* new judoka */
        ret = set_category(&parent, 0, (gchar *)j->category, 0, 0, 0);

        gtk_tree_store_append((GtkTreeStore *)current_model, 
                              &child, &parent);
        put_data_by_iter(j, &child);
    }

    return ret;
}
Пример #2
0
Token :: Token(char input, Category category, double actual_value, int precedence)
{
	set_input(input);
	set_category(category);
	set_actual_value(actual_value);
	set_precedence(precedence);
}
Пример #3
0
Файл: lsc.c Проект: wcheswick/ex
int
main(int argc, char *argv[]) {
	prog = argv[0];

	fps_flag = (getenv("FPS") != NULL);

	load_config("lsc");
	init_font_locale(lookup("locale", 0, 0));
	srandom(0);
	set_screen_size(SCREEN_WIDTH, SCREEN_HEIGHT);
	layout_screen();
	init_polar();
	init_transforms();
	init_video_in();
	init_display(argc, argv, prog);
	set_category(primary_buttons[Cat_change_color].b);
	gettimeofday(&last_busy, 0);

	ARGBEGIN {
	case 'd':	debug++;			break;
	case 'g':	grabtimeout = atoi(ARGF());	break;
	case 'i':	idletime = atoi(ARGF());	break;
	default:
		return usage();
	} ARGEND;

	if (grabtimeout != 0 && grabtimeout < ALARMTIME) {
		fprintf(stderr, "unreasonable grab time limit\n");
		exit(14);
	}

	state = Live;
	io_main_loop();
	return 0;
}
Пример #4
0
/**
 * \brief Constructor.
 */
ptb::gorilla::gorilla()
  : m_progress(NULL), m_want_come_back(false), m_scan_distance(320)
{
  set_z_fixed(false);
  set_mass(100);
  set_density(2);

  m_monster_type = monster::enemy_monster;
  m_energy = 30;
  m_offensive_phase = true;
  m_offensive_force = s_gorilla_offensive_force;
  m_offensive_coefficients[normal_attack] = 1;
  get_rendering_attributes().mirror(false);
  set_category("gorilla");
} // gorilla::gorilla()
Пример #5
0
Файл: lsc.c Проект: wcheswick/ex
int
process_command(Point mouse) {
	button *bp = buttons;

	while (bp && (bp->state == Hidden || !ptinrect(mouse, bp->r)))
		bp = bp->next;
	if (!bp)
		return 0;

	if (bp == undo_button) {
		if (nhist > 0) {
			nhist--;
			show_hist();
		}
	} else if (bp == startover_button) {
		unfreeze();
		nhist = 0;
		show_hist();
	} else if (bp == freeze_button) {
		switch (state) {
		case Live:
			state = Frozen;
			freeze_button->state = On;
			paint_fancy_button(freeze_button);
			break;
		case Frozen:
			unfreeze();
			break;
		default:
			break;
		}
		flush_screen();
	} else if (bp == primary_buttons[Cat_change_color].b ||
	   bp == primary_buttons[Cat_change_look].b ||
	   bp == primary_buttons[Cat_change_shape].b) {
		set_category(bp);
	} else {
		if (bp && nhist < MAXHIST) {
			history[nhist++] = bp;
			show_hist();
		}
	}
	flush_screen();
	return 1;
}
Пример #6
0
Файл: lsc.c Проект: wcheswick/ex
/*
 * Draw the current screen.
 */
void
draw_screen(void) {
	button *bp = buttons;

	clear_screen_to_background();
	while (bp) {
		if (bp->state != Hidden  && bp->category == Cat_none) {
			paint_fancy_button(bp);
			flush_screen();
		}
		bp = bp->next;
	}

	set_category(current_primary_button);
	show_hist();
	write_video_frame_zoom(video_r.min, &frames[nhist], VIDEO_ZOOM);
	show_cursor();
	flush_screen();
}
Пример #7
0
/*
 *	Main thread.  Sits on the message queue and waits for something to do.
 *
 * The transport thread for the ibm will issue a delayed request for
 * requests supporting delayed requests.  Otherwise will issue the request
 * and wait for response.
 */
void *
transport_thread(
	void *vxport)
{
	robo_event_t 	*event;
	xport_state_t 	*transport = (xport_state_t *)vxport;
	struct sigaction sig_action;
	sigset_t signal_set, full_block_set;

	sigfillset(&full_block_set);
	sigemptyset(&signal_set);	/* signals to except. */
	sigaddset(&signal_set, SIGCHLD);

	mutex_lock(&transport->mutex);	/* wait for go */
	mutex_unlock(&transport->mutex);
	l_mess = transport->library->un->dis_mes[DIS_MES_NORM];
	lc_mess = transport->library->un->dis_mes[DIS_MES_CRIT];
	thr_sigsetmask(SIG_SETMASK, &full_block_set, NULL);
	memset(&sig_action, 0, sizeof (struct sigaction));
	(void) sigemptyset(&sig_action.sa_mask);
	sig_action.sa_flags = SA_RESTART;
	sig_action.sa_handler = SIG_DFL;
	(void) sigaction(SIGCHLD, &sig_action, NULL);
	for (;;) {
		mutex_lock(&transport->list_mutex);
		if (transport->active_count == 0)
			cond_wait(&transport->list_condit,
			    &transport->list_mutex);

		if (transport->active_count == 0) {	/* check to make sure */
			mutex_unlock(&transport->list_mutex);
			continue;
		}
		event = transport->first;
		transport->first = unlink_list(event);
		transport->active_count--;
		mutex_unlock(&transport->list_mutex);
		ETRACE((LOG_NOTICE, "EvTr %#x(%#x) - \n",
		    event, (event->type == EVENT_TYPE_MESS) ?
		    event->request.message.command :
		    event->request.internal.command));
		event->next = NULL;

		/* Everyone must take care of disposing of the event */
		switch (event->type) {
		case EVENT_TYPE_INTERNAL:
			switch (event->request.internal.command) {
			case ROBOT_INTRL_LOAD_MEDIA:
				if (transport->library->un->state <= DEV_IDLE) {
					load(transport->library, event);
				} else {
					disp_of_event(transport->library,
					    event, EINVAL);
				}
				break;

			case ROBOT_INTRL_FORCE_MEDIA:
				force(transport->library, event);
				break;

			case ROBOT_INTRL_DISMOUNT_MEDIA:
				dismount(transport->library, event);
				break;

			case ROBOT_INTRL_INIT:
				init_transport(transport);
				disp_of_event(transport->library, event, 0);
				break;

			case ROBOT_INTRL_VIEW_DATABASE:
				view(transport->library, event);
				break;

			case ROBOT_INTRL_QUERY_DRIVE:
				query_drv(transport->library, event);
				break;

			case ROBOT_INTRL_QUERY_LIBRARY:
				query_lib(transport->library, event);
				break;

			case ROBOT_INTRL_SET_CATEGORY:
				set_category(transport->library, event);
				break;

			case ROBOT_INTRL_SHUTDOWN:
				transport->thread = (thread_t)- 1;
				thr_exit((void *)NULL);
				break;

			default:
				disp_of_event(transport->library, event,
				    EINVAL);
				break;
			}
			break;

		case EVENT_TYPE_MESS:
			if (event->request.message.magic != MESSAGE_MAGIC) {
				if (DBG_LVL(SAM_DBG_DEBUG))
					sam_syslog(LOG_DEBUG,
					    "xpt_thr:bad magic: %s:%d.\n",
					    __FILE__, __LINE__);

				disp_of_event(transport->library, event,
				    EINVAL);
				break;
			}
			switch (event->request.message.command) {
			default:
				if (DBG_LVL(SAM_DBG_DEBUG))
					sam_syslog(LOG_DEBUG,
					    "xpt_thr:msq_bad: %s:%d.\n",
					    __FILE__, __LINE__);
				disp_of_event(transport->library, event,
				    EINVAL);
				break;
			}

		default:
			if (DBG_LVL(SAM_DBG_DEBUG))
				sam_syslog(LOG_DEBUG,
				    "xpt_thr:event_bad: %s:%d.\n",
				    __FILE__, __LINE__);
			disp_of_event(transport->library, event, EINVAL);
			break;
		}
	}
}