void inventory_selector::insert_selection_column( const std::string &id, const std::string &name )
{
    std::unique_ptr<inventory_column> new_column( new selection_column( id, name ) );

    for( const auto &column : columns ) {
        static_cast<selection_column *>( new_column.get() )->reserve_width_for( *column );
    }

    if( column_can_fit( *new_column ) ) { // Insert only if it will be visible. Ignore otherwise.
        insert_column( columns.end(), new_column );
    }
}
예제 #2
0
파일: f4.cpp 프로젝트: pzinn/M2
int F4GB::find_or_append_column(packed_monomial m)
{
  packed_monomial new_m;
  if (H.find_or_insert(m, new_m))
    return static_cast<int>(new_m[-1]);
  // At this point, m is a new monomial to be placed as a column
  m = next_monom;
  B.intern(1+M->monomial_size(m));
  next_monom = B.reserve(1+M->max_monomial_size());
  next_monom++;
  return new_column(m);
}
예제 #3
0
파일: f4.cpp 프로젝트: pzinn/M2
int F4GB::mult_monomials(packed_monomial m, packed_monomial n)
{
  // We already have allocated space for a monomial
  // Do the multiply
  // Look it up in the hashtable
  // If it is there, return its column
  // If not, increment our memory block, and insert a new column.
  packed_monomial new_m;
  M->unchecked_mult(m,n,next_monom);
  if (H.find_or_insert(next_monom, new_m))
    return static_cast<int>(new_m[-1]); // monom exists, don't save monomial space
  m = next_monom;
  B.intern(1+M->monomial_size(m));
  next_monom = B.reserve(1+M->max_monomial_size());
  next_monom++;
  return new_column(m);
}
예제 #4
0
void	graphics::hud_c::draw () {

	if (!nav::ship || !nav::ref || !nav::targ) return;

	column_w	= graphics::camera->size[0] / columns;
	text_start_x= padding;
	text_start_y= graphics::camera->size[1] - 9 * 17;

	al_draw_filled_rectangle
		(0, text_start_y - padding,
			graphics::camera->size[0], graphics::camera->size[1],
			al_color_name("black"));
	al_draw_line
		(0, text_start_y - padding,
			graphics::camera->size[0], text_start_y - padding,
			al_color_name("white"), 1);

	std::stringstream text("");
	text << std::setprecision(2) << std::uppercase << std::fixed;
	line = 0;
	column = 0;


	text << "Speed (" << nav::ref->name << "): "
		<< calc::velocity(*nav::ship, *nav::ref).norm();
	add_line(text);
	text << "Speed (" << nav::targ->name << "): "
		<< calc::velocity(*nav::ship, *nav::targ).norm();
	add_line(text);
	text << "Orbital Speed (" << nav::ref->name << "): "
		<< calc::v_orbit(*nav::ship, *nav::ref);
	add_line(text);
	text << "Centrifugal Speed (" << nav::ref->name << "): "
		<< calc::v_cen(*nav::ship, *nav::ref);
	add_line(text);
	text << "Tangential Speed (" << nav::ref->name << "): "
		<< calc::v_tan(*nav::ship, *nav::ref);
	add_line(text);
	text << "Acceleration (" << nav::ship->name << "): "
		<< nav::ship->acc.norm();
	add_line(text);
	text << "Stopping Acceleration (" << nav::ref->name << "): "
		<< calc::stopping_acc(*nav::ship, *nav::ref);
	add_line(text);
	text << "Periapsis (" << nav::ref->name << "): "
		<< calc::periapsis(*nav::ship, *nav::ref);
	add_line(text);
	text << "Apoapsis (" << nav::ref->name << "): "
		<< calc::apoapsis(*nav::ship, *nav::ref);
	add_line(text);


	new_column();

	if (nav::ship->type == HAB) {
		hab_c *hab = (hab_c*) nav::ship;
		text << "Fuel (" << hab->name << "): "
			<< hab->fuel;
		add_line(text);

		text << "Throttle (" << hab->name << "): "
			<< hab->throttle * 100 << '%';
		add_line(text);
	}

	add_line(text);

	add_line(text);
	add_line(text);
	add_line(text);
	add_line(text);
	add_line(text);


	graphics::draw_at(*nav::ship,
					25/nav::ship->radius,
					graphics::camera->size[0]/2,
					text_start_y + padding + 56);


	text << "Turn rate (" << nav::ship->name << "): "
		<< nav::ship->ang_v/M_PI*180 << " \u00B0/s";
	add_line(text);


	new_column();


	text << "Altitude (" << nav::ref->name << "): "
		<< calc::distance(*nav::ship, *nav::ref) - (nav::ship->radius + nav::ref->radius);
	add_line(text);
	text << "Time Dilation: "
		<< tidi << "x";
	add_line(text);

	text << "\u03B8 (\u2220" << nav::ship->name<<'/'<<nav::ref->name<<'/'<<nav::targ->name<< "): "
		<< calc::theta(*nav::ship, *nav::ref, *nav::targ);
	add_line(text);
	text << "Pitch (" << nav::ref->name << "): "
		<< calc::pitch(*nav::ship, *nav::ref);
	add_line(text);
	text << "Center: "
		<< graphics::camera->center->name;
	add_line(text);
	text << "Ship: "
		<< nav::ship->name;
	add_line(text);
	text << "Target: "
		<< nav::targ->name;
	add_line(text);
	text << "Reference: "
		<< nav::ref->name;
	add_line(text);
	text << "Navigation: "
		<< "Manual";
	add_line(text);
}
예제 #5
0
파일: message.c 프로젝트: aztrock/wmii
char *
send_client(View *v, IxpMsg *m, Bool swap) {
	Area *to, *a;
	Frame *f;
	Client *c;
	char *s;
	ulong i;
	int sym;

	s = getword(m);

	c = strclient(v, s);
	if(c == nil)
		return Ebadvalue;

	f = view_clientframe(v, c);
	if(f == nil)
		return Ebadvalue;

	a = f->area;
	to = nil;

	s = getword(m);
	sym = getsym(s);

	switch(sym) {
	case LUP:
	case LDOWN:
		return send_frame(f, sym, swap);
	case LLEFT:
		if(a->floating)
			return Ebadvalue;

		if(a->prev != v->area)
			to = a->prev;
		a = v->area;
		break;
	case LRIGHT:
		if(a->floating)
			return Ebadvalue;

		to = a->next;
		break;
	case LTOGGLE:
		if(!a->floating)
			to = v->area;
		else if(c->revert && !c->revert->floating)
			to = c->revert;
		else
			to = v->area->next;
		break;
	default:
		if(!getulong(s, &i) || i == 0)
			return Ebadvalue;

		for(to=v->area; to; to=to->next)
			if(!i--) break;
		break;
	}

	if(!to && !swap && (f->anext || f != f->area->frame))
		to = new_column(v, a, 0);

	if(!to)
		return Ebadvalue;

	if(!swap)
		send_to_area(to, f);
	else if(to->sel)
		swap_frames(f, to->sel);
	else
		return Ebadvalue;

	flushevents(EnterWindowMask, False);
	focus_frame(f, True);
	arrange_view(v);
	update_views();
	return nil;
}
예제 #6
0
    /*gtk_tree_selection_set_select_function(viewsel, treeselfun,NULL,NULL); */
    gtk_tree_selection_set_mode(viewsel,GTK_SELECTION_MULTIPLE);
    gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(view), COL_FULL);
    /*
      The implementation of GtkTreeView hardcoded GDK_LINE_ON_OFF_DASH in
      gtk_tree_view_set_grid_lines, which makes it impossible to make solid
      lines. In rc_string (monitor.c) "\255\256" in grid-line-pattern means 255
      pixels of on and 1 pixel of off. I can not have \0 for the second part
      because it terminates the string.
    */
    gtk_tree_view_set_grid_lines(GTK_TREE_VIEW(view), GTK_TREE_VIEW_GRID_LINES_VERTICAL);
    gtk_tree_view_set_enable_search(GTK_TREE_VIEW(view), TRUE);
    /*g_object_set(G_OBJECT(view),"rules-hint", TRUE, NULL); */
    gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(view), TRUE);
    //gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(view), TRUE);
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(0, 0, "Date", "text", COL_DATE, NULL));
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(0, 0, "PID" , "text", COL_PID, NULL));
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(0, -240,"Path", "text", COL_START, NULL));
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(0, 5,"Args", "text", COL_ARGS, NULL));
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(0, 0,"Out", "text",  COL_OUT, NULL));
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(0, 0, "Low" , "text", COL_ERRLO,"foreground",COL_COLOR, NULL));
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(0, 0, "High", "text", COL_ERRHI,"foreground",COL_COLOR, NULL));
    /*gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(0, 0, "Step", "text", COL_TIMING, NULL));
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(0, 0, "Left", "text", COL_REST, NULL));
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(0, 0, "Tot", "text", COL_ALL, NULL));*/
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(1, 0, "Seed", "text", COL_SEED, "value",COL_SEEDP,NULL));
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(1, 0, "Progress", "text", COL_STEP, "value",COL_STEPP,NULL));
    gtk_tree_view_append_column(GTK_TREE_VIEW(view), new_column(2, 0, " ", "pixbuf", COL_ACTION, NULL));
    
    return view;
}