示例#1
0
void test_transform_point(Value value)
{
    P1 p1;
    bg::set<0>(p1, 1);
    bg::set<1>(p1, 2);
    boost::variant<P1> v(p1);

    P2 expected;
    bg::assign(expected, p1);
    bg::multiply_value(expected, value);

    check_transform(p1, expected);
    check_transform(v, expected);
}
示例#2
0
void test_transform_linestring(Value value)
{
    typedef bg::model::linestring<P1> line1_type;
    typedef bg::model::linestring<P2> line2_type;

    line1_type line1;
    line1.push_back(bg::make<P1>(1, 1));
    line1.push_back(bg::make<P1>(2, 2));
    boost::variant<line1_type> v(line1);

    line2_type expected;
    for (BOOST_AUTO(p, line1.begin()); p != line1.end(); ++p)
    {
        P2 new_point;
        bg::assign(new_point, *p);
        bg::multiply_value(new_point, value);
        expected.push_back(new_point);
    }

    check_transform(line1, expected);
    check_transform(v, expected);
}
示例#3
0
int main()
{
   check_unary_trait(is_void);
   check_unary_trait(is_integral);
   check_unary_trait(is_floating_point);
   check_unary_trait(is_array);
   check_unary_trait(is_pointer);
   check_unary_trait(is_reference);
   check_unary_trait(is_member_object_pointer);
   check_unary_trait(is_member_function_pointer);
   check_unary_trait(is_enum);
   check_unary_trait(is_union);
   check_unary_trait(is_class);
   check_unary_trait(is_function);
   check_unary_trait(is_arithmetic);
   check_unary_trait(is_fundamental);
   check_unary_trait(is_object);
   check_unary_trait(is_scalar);
   check_unary_trait(is_compound);
   check_unary_trait(is_member_pointer);
   check_unary_trait(is_const);
   check_unary_trait(is_volatile);
   check_unary_trait(is_pod);
   check_unary_trait(is_empty);
   check_unary_trait(is_polymorphic);
   check_unary_trait(is_abstract);
   check_unary_trait(has_trivial_constructor);
   check_unary_trait(has_trivial_copy);
   check_unary_trait(has_trivial_assign);
   check_unary_trait(has_trivial_destructor);
   check_unary_trait(has_nothrow_constructor);
   check_unary_trait(has_nothrow_copy);
   check_unary_trait(has_nothrow_assign);
   check_unary_trait(has_virtual_destructor);
   check_unary_trait(is_signed);
   check_unary_trait(is_unsigned);

   check_value_trait(std::tr1::alignment_of<int>());
   check_value_trait(std::tr1::alignment_of<UDT>());
   check_value_trait(std::tr1::alignment_of<int[4]>());

   check_unary_trait(rank);
   check_unary_trait(extent);
   
   check_binary_trait(is_same);
   check_binary_trait(is_base_of);
   check_binary_trait(is_convertible);

   check_transform(remove_const);
   check_transform(remove_volatile);
   check_transform(remove_cv);
   check_transform(add_const);
   check_transform(add_volatile);
   check_transform(add_cv);
   check_transform(remove_reference);
   check_transform(add_reference);
   check_transform(remove_extent);
   check_transform(remove_all_extents);
   check_transform(remove_pointer);
   check_transform(add_pointer);
   check_transform_trait((::std::tr1::aligned_storage<1,1>*)(0));
   check_transform_trait((::std::tr1::aligned_storage<4,1>*)(0));
   check_transform_trait((::std::tr1::aligned_storage<2,2>*)(0));
   check_transform_trait((::std::tr1::aligned_storage<4,2>*)(0));
   check_transform_trait((::std::tr1::aligned_storage<4,4>*)(0));
   check_transform_trait((::std::tr1::aligned_storage<4,4>*)(0));
   check_transform_trait((::std::tr1::aligned_storage<8,8>*)(0));

   return 0;
}
示例#4
0
static gboolean
gdk_x11_screen_get_setting (GdkScreen   *screen,
			    const gchar *name,
			    GValue      *value)
{

  const char *xsettings_name = NULL;
  XSettingsResult result;
  XSettingsSetting *setting = NULL;
  GdkX11Screen *x11_screen;
  gboolean success = FALSE;
  gint i;
  GValue tmp_val = { 0, };

  g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);

  x11_screen = GDK_X11_SCREEN (screen);

  for (i = 0; i < GDK_SETTINGS_N_ELEMENTS(); i++)
    if (strcmp (GDK_SETTINGS_GDK_NAME (i), name) == 0)
      {
	xsettings_name = GDK_SETTINGS_X_NAME (i);
	break;
      }

  if (!xsettings_name)
    goto out;

  result = xsettings_client_get_setting (x11_screen->xsettings_client,
					 xsettings_name, &setting);
  if (result != XSETTINGS_SUCCESS)
    goto out;

  switch (setting->type)
    {
    case XSETTINGS_TYPE_INT:
      if (check_transform (xsettings_name, G_TYPE_INT, G_VALUE_TYPE (value)))
	{
	  g_value_init (&tmp_val, G_TYPE_INT);
	  g_value_set_int (&tmp_val, setting->data.v_int);
	  g_value_transform (&tmp_val, value);

	  success = TRUE;
	}
      break;
    case XSETTINGS_TYPE_STRING:
      if (check_transform (xsettings_name, G_TYPE_STRING, G_VALUE_TYPE (value)))
	{
	  g_value_init (&tmp_val, G_TYPE_STRING);
	  g_value_set_string (&tmp_val, setting->data.v_string);
	  g_value_transform (&tmp_val, value);

	  success = TRUE;
	}
      break;
    case XSETTINGS_TYPE_COLOR:
      if (!check_transform (xsettings_name, GDK_TYPE_COLOR, G_VALUE_TYPE (value)))
	{
	  GdkColor color;

	  g_value_init (&tmp_val, GDK_TYPE_COLOR);

	  color.pixel = 0;
	  color.red = setting->data.v_color.red;
	  color.green = setting->data.v_color.green;
	  color.blue = setting->data.v_color.blue;

	  g_value_set_boxed (&tmp_val, &color);

	  g_value_transform (&tmp_val, value);

	  success = TRUE;
	}
      break;
    }

  g_value_unset (&tmp_val);

 out:
  if (setting)
    xsettings_setting_free (setting);

  if (success)
    return TRUE;
  else
    return _gdk_x11_get_xft_setting (screen, name, value);
}