Ejemplo n.º 1
0
void Horizontal_paned::Handle_event(const ALLEGRO_EVENT& event)
{
	Vector2 p = Get_position();
	Vector2 s = Get_size();
	float pane_size = Get_value(PANE);
	if(event.type == ALLEGRO_EVENT_MOUSE_BUTTON_DOWN)
	{
		float pane_x_diff = event.mouse.x-(p.x + pane_position);
		if(event.mouse.y >= p.y && event.mouse.y <= p.y + s.y
		&& pane_x_diff >= 0 && pane_x_diff < pane_size)
		{
			holding_pane = pane_x_diff;
		}
	}
	if(event.type == ALLEGRO_EVENT_MOUSE_BUTTON_UP)
	{
		holding_pane = -1;
	}
	if(event.type == ALLEGRO_EVENT_MOUSE_AXES)
	{
		if(holding_pane != -1)
		{
			float new_x = (event.mouse.x - p.x) - holding_pane;
			float max_x = Get_size().x-pane_size;
			Set_pane_fraction(new_x/max_x);
			Organise();
		}
	}
	if(left)
		left->Handle_event(event);
	if(right)
		right->Handle_event(event);
}
Ejemplo n.º 2
0
void Vertical_paned::Handle_event(const ALLEGRO_EVENT& event)
{
	Vector2 p = Get_position();
	Vector2 s = Get_size();
	float pane_size = Get_value(PANE);
	if(event.type == ALLEGRO_EVENT_MOUSE_BUTTON_DOWN)
	{
		float pane_y_diff = event.mouse.y-(p.y + pane_position);
		if(event.mouse.x >= p.x && event.mouse.x <= p.x + s.x
		&& pane_y_diff >= 0 && pane_y_diff < pane_size)
		{
			holding_pane = pane_y_diff;
		}
	}
	if(event.type == ALLEGRO_EVENT_MOUSE_BUTTON_UP)
	{
		holding_pane = -1;
	}
	if(event.type == ALLEGRO_EVENT_MOUSE_AXES)
	{
		if(holding_pane != -1)
		{
			float new_y = (event.mouse.y - p.y) - holding_pane;
			float max_y = Get_size().y-pane_size;
			Set_pane_fraction(new_y/max_y);
			Organise();
		}
	}
	if(top)
		top->Handle_event(event);
	if(bottom)
		bottom->Handle_event(event);
}
Ejemplo n.º 3
0
void Communicator::Irecv_all(Message* msgs, CommunicationTAG tag) {
  for (int i=0; i<Get_size(); i++) {
    if (i == Get_rank()) continue;

    Irecv(i, &msgs[i], tag);
  }
}
Ejemplo n.º 4
0
void Vertical_paned::Set_pane_fraction(float p)
{
	float pane_size = Get_value(PANE);
	float max_y = Get_size().y-pane_size;
	float pp = p*max_y;
	pane_position = pp<0?0:pp>max_y?max_y:pp;
	pane_reference = p;
}
Ejemplo n.º 5
0
void Vertical_paned::Set_pane_position(float p)
{
	float pane_size = Get_value(PANE);
	float max_y = Get_size().y-pane_size;
	pane_position = p<0?0:p>max_y?max_y:p;
	pane_reference = pane_position/max_y;
	Organise();
}
Ejemplo n.º 6
0
void Horizontal_paned::Set_pane_fraction(float p)
{
	float pane_size = Get_value(PANE);
	float max_x = Get_size().x-pane_size;
	float pp = p*max_x;
	pane_position = pp<0?0:pp>max_x?max_x:pp;
	pane_reference = p;
}
Ejemplo n.º 7
0
void Horizontal_paned::Set_pane_position(float p)
{
	float pane_size = Get_value(PANE);
	float max_x = Get_size().x-pane_size;
	pane_position = p<0?0:p>max_x?max_x:p;
	pane_reference = pane_position/max_x;
	Organise();
}
Ejemplo n.º 8
0
void Communicator::Allgather(ConstData in,Data out){
#if defined(__PLUMED_MPI)
  plumed_massert(initialized(),"you are trying to use an MPI function, but MPI is not initialized");
  void*s=const_cast<void*>((const void*)in.pointer);
  void*r=const_cast<void*>((const void*)out.pointer);
  if(s==NULL)s=MPI_IN_PLACE;
  MPI_Allgather(s,in.size,in.type,r,out.size/Get_size(),out.type,communicator);
#else
  (void) in;
  (void) out;
  plumed_merror("you are trying to use an MPI function, but PLUMED has been compiled without MPI support");
#endif
}
Ejemplo n.º 9
0
bool Communicator::Test_all(CommunicationTAG tag) {
  bool received = true;
  for (int i=0; i<Get_size(); i++) {
    if (i == Get_rank()) continue;
    MPI::Request* request = Get_request(i, tag);
    if (!request->Test()) {
      received = false;
      break;
    }
  }

  return received;
}
Ejemplo n.º 10
0
void Expander::Organise()
{
	float indent = Get_value(INDENT);
	Vector2 p = Get_position();
	p.y += Get_value(SELF_HEIGHT);
	Vector2 s = Get_size();
	s.y -= Get_value(SELF_HEIGHT);

	if(child)
	{
		child->Set_size(s);
		child->Set_position(p);
	}
	Calculate_request_size();
}
Ejemplo n.º 11
0
void Horizontal_paned::Organise()
{
	Vector2 position = Get_position();
	Vector2 size = Get_size();
	float pane_size = Get_value(PANE);
	float leftsize = pane_position;
	float rightsize = size.x-pane_size-leftsize;
	if(left)
	{
		left->Set_position(position);
		left->Set_size(Vector2(leftsize, size.y));
	}
	if(right)
	{
		right->Set_position(Vector2(position.x+leftsize+pane_size, position.y));
		right->Set_size(Vector2(rightsize, size.y));
	}
}
Ejemplo n.º 12
0
void Vertical_paned::Organise()
{
	Vector2 position = Get_position();
	Vector2 size = Get_size();
	float topsize = pane_position;
	float pane_size = Get_value(PANE);
	float bottomsize = size.y-pane_size-topsize;
	if(top)
	{
		top->Set_position(position);
		top->Set_size(Vector2(size.x, topsize));
	}
	if(bottom)
	{
		bottom->Set_position(Vector2(position.x, position.y+topsize+pane_size));
		bottom->Set_size(Vector2(size.x, bottomsize));
	}
	Calculate_request_size();
}
Ejemplo n.º 13
0
void Create_Bubble(const char *package, const char* name){
	char appid[10];
	fstream file;
	file.open(package,ios::in|ios::binary);
	if(!file.fail()){
		file.seekg(55, ios::beg);
		file.read(appid,9);
		file.close();
	}

	char files[256];
	for(;f1<sizeof(Hex);f1++, f2=0){
		for(;f2<sizeof(Hex);f2++){
			sprintf(files,"/dev_hdd0/vsh/task/000000%c%c",Hex[f1],Hex[f2]);
			if(sysLv2FsMkdir(files, S_IRWXO | S_IRWXU | S_IRWXG | S_IFDIR) == 0)
				goto copy;
		}
	}
copy:
	Create_PDB(files,name,Get_size(package),package);
	sprintf(files,"%s/%s.pkg",files,appid);
	CopyFile(package, files);
}
Ejemplo n.º 14
0
void Communicator::Send_all(Message msg, CommunicationTAG tag) {
  for (int i=0; i<Get_size(); i++) {
    if (i == Get_rank()) continue;
    Send(i, msg, tag);
  }
}