Esempio n. 1
0
static void repeat ()
{
  if(gcomprisBoard!=NULL)
    {
      _repeat();
    }
}
Esempio n. 2
0
 RegNodePtr _concat()
 {
     auto r = _repeat();
     if (!r) return r;
     if (auto n = _concat()) {
         r.reset(new RegNode_Concat(r, n));
     }
     return r;
 }
Esempio n. 3
0
/* ==================================== */
static GooCanvasItem *click_on_letter_create_item(GooCanvasItem *parent)
{

  int xOffset, yOffset, i;

  if (gcomprisBoard->sublevel == 1)
    {
      Level *level = &g_array_index (levels, Level, gcomprisBoard->level - 1);
      n_answer = g_utf8_strlen (level->answers, -1);
      g_assert( n_answer <= MAX_N_ANSWER );

      if ( uppercase_only )
	{
	  gchar *answers_up = g_utf8_strup( level->answers, -1 );
	  gchar *questions_up = g_utf8_strup( level->questions, -1 );
	  answers = shuffle_utf8(answers_up);
	  questions = shuffle_utf8(questions_up);
	  g_free(answers_up);
	  g_free(questions_up);
	}
      else
	{
	  answers = shuffle_utf8(level->answers);
	  questions = shuffle_utf8(level->questions);
	}

      /* Go to next level after this number of 'play' */
      gcomprisBoard->number_of_sublevel = g_utf8_strlen (level->questions, -1);
    }
  right_letter = g_utf8_strdown(questions[gcomprisBoard->sublevel - 1], -1);


  boardRootItem = goo_canvas_group_new (goo_canvas_get_root_item(gcomprisBoard->canvas),
					NULL);

  if ( ! _repeat() )
  {
    /* Sound was not played, display the letter to find instead */
    guint x = 10;
    guint y = 110;
    guint width = 80;
    guint height = 80;
    goo_canvas_rect_new (boardRootItem,
			 x,
			 y,
			 width,
			 height,
			 "stroke_color_rgba", 0xFFFFFFFFL,
			 "fill_color_rgba", 0x00005550L,
			 "line-width", (double) 2,
			 "radius-x", (double) 10,
			 "radius-y", (double) 10,
			 NULL);
    goo_canvas_text_new (boardRootItem,
			 questions[gcomprisBoard->sublevel - 1],
			 (double) x + width / 2,
			 (double) y + height / 2,
			 -1,
			 GTK_ANCHOR_CENTER,
			 "font", gc_skin_font_board_huge_bold,
			 "fill_color_rgba", 0xffffffff,
			 NULL);
  }

  /* Display the answers */
  yOffset = VERTICAL_SEPARATION - carriage_svg_dimension.height;
  xOffset = 144;
  gint text_gap_x = -5;
  gint text_gap_y = -35;

  RsvgHandle *svg_handle= carriage_svg_handle;
  RsvgDimensionData svg_dimension = carriage_svg_dimension;

  for (i = 0; i< n_answer; i++) {

    if ( i > 0 && i % N_LETTER_PER_LINE == 0 )
      {
	/* Line wrapping */
	svg_handle= cloud_svg_handle;
	svg_dimension = cloud_svg_dimension;
	xOffset = 144;
	yOffset -= svg_dimension.height;
	text_gap_x = 0;
	text_gap_y = 0;
      }

    GooCanvasItem *button_item =		\
      goo_canvas_svg_new (boardRootItem,
			  svg_handle,
			  "svg-id", "#OFF",
			  NULL);
    goo_canvas_item_translate( button_item,
			       xOffset,
			       yOffset);


    GooCanvasItem *text_item = \
      goo_canvas_text_new (boardRootItem,
			   answers[i],
			   (double) xOffset + svg_dimension.width / 2 + text_gap_x,
			   (double) yOffset + svg_dimension.height / 2 + text_gap_y,
			   -1,
			   GTK_ANCHOR_CENTER,
			   "font", gc_skin_font_board_huge_bold,
			   "fill_color_rgba", 0x000000ff,
			   NULL);

    xOffset += HORIZONTAL_SEPARATION + svg_dimension.width;

    g_signal_connect(text_item, "button_press_event",
		     (GCallback) item_event, answers[i]);
    g_signal_connect(button_item, "button_press_event",
		     (GCallback) item_event, answers[i]);
    gc_item_focus_init(text_item, button_item);
    gc_item_focus_init(button_item, NULL);
    g_object_set_data(G_OBJECT(button_item), "button_item", button_item);
    g_object_set_data(G_OBJECT(text_item), "button_item", button_item);
  }

  return NULL;
}
Esempio n. 4
0
QVariant ZStringFormatter::transform(QVariant val){
    if(method() == ZFMT_METHOD_STR_CONCAT){ //!                      concat( with )
        return _concat(val,arg("with",ZML_DEFAULT_PARAM_NAME));

    }else if(method() == ZFMT_METHOD_STR_DOWNCASE){ //!              downcase
        return _downcase(val);

    }else if(method() == ZFMT_METHOD_STR_ELIDE){ //!                 elide( [maxLength [, placeholder]] )
        if(arg("placeholder").isValid())
            return _elide(val, arg("maxLength",ZML_DEFAULT_PARAM_NAME).toInt(), arg("placeholder").toString());
        else
            return _elide(val, arg("maxLength",ZML_DEFAULT_PARAM_NAME).toInt());

    }else if(method() == ZFMT_METHOD_STR_LEFT){ //!                  left( length )
        return _left(val, arg("length",ZML_DEFAULT_PARAM_NAME).toUInt());

    }else if(method() == ZFMT_METHOD_STR_LEFTOF){ //!                leftOf( delimiter )
        return _leftOf(val, arg("delimiter",ZML_DEFAULT_PARAM_NAME).toString());

    }else if(method() == ZFMT_METHOD_STR_LELIDE){ //!                lelide( [maxLength [, placeholder]] )
        if(arg("placeholder").isValid())
            return _lelide(val, arg("maxLength",ZML_DEFAULT_PARAM_NAME).toInt(), arg("placeholder").toString());
        else
            return _lelide(val, arg("maxLength",ZML_DEFAULT_PARAM_NAME).toInt());

    }else if(method() == ZFMT_METHOD_STR_LPAD){ //!                  lpad( length [, symbol] )
        if(arg("symbol").isValid())
            return _lpad(val, arg("length",ZML_DEFAULT_PARAM_NAME).toUInt(), arg("symbol").toChar());
        else
            return _lpad(val, arg("length",ZML_DEFAULT_PARAM_NAME).toUInt());

    }else if(method() == ZFMT_METHOD_STR_LSHIFT){ //!                lshift( places )
        return _lshift(val, arg("places", ZML_DEFAULT_PARAM_NAME).toUInt());

    }else if(method() == ZFMT_METHOD_STR_LTRIM){ //!                 ltrim( [pattern] )
        if(arg("pattern").isValid())
            return _ltrim(val, arg("pattern",ZML_DEFAULT_PARAM_NAME).toString());
        else
            return _ltrim(val);

    }else if(method() == ZFMT_METHOD_STR_RELIDE){ //!                relide( [maxLength [, placeholder]] )
        if(arg("placeholder").isValid())
            return _relide(val, arg("maxLength",ZML_DEFAULT_PARAM_NAME).toInt(), arg("placeholder").toString());
        else
            return _relide(val, arg("maxLength",ZML_DEFAULT_PARAM_NAME).toInt());

    }else if(method() == ZFMT_METHOD_STR_REPEAT){ //!                repeat( times )
        return _repeat(val, arg("times",ZML_DEFAULT_PARAM_NAME).toUInt());

    }else if(method() == ZFMT_METHOD_STR_REVERSE){ //!               reverse
        return _reverse(val);

    }else if(method() == ZFMT_METHOD_STR_RIGHT){ //!                 right( length )
        return _right(val, arg("length",ZML_DEFAULT_PARAM_NAME).toUInt());

    }else if(method() == ZFMT_METHOD_STR_RIGHTOF){ //!               rightOf( delimiter )
        return _rightOf(val, arg("delimiter",ZML_DEFAULT_PARAM_NAME).toString());

    }else if(method() == ZFMT_METHOD_STR_RPAD){ //!                  rpad( length [, symbol] )
        if(arg("symbol").isValid())
            return _rpad(val, arg("length",ZML_DEFAULT_PARAM_NAME).toUInt(), arg("symbol").toChar());
        else
            return _rpad(val, arg("length",ZML_DEFAULT_PARAM_NAME).toUInt());

    }else if(method() == ZFMT_METHOD_STR_RSHIFT){ //!                rshift( places )
        return _rshift(val, arg("places",ZML_DEFAULT_PARAM_NAME).toUInt());

    }else if(method() == ZFMT_METHOD_STR_RTRIM){ //!                 rtrim( [pattern] )
        if(arg("pattern").isValid())
            return _rtrim(val, arg("pattern",ZML_DEFAULT_PARAM_NAME).toString());
        else
            return _rtrim(val);

    }else if(method() == ZFMT_METHOD_STR_SCASE){ //!                 capitalize
        return _sentenceCase(val);

    }else if(method() == ZFMT_METHOD_STR_SQUEEZE){ //!               squeeze( [symbol] )
        if(arg("symbol").isValid())
            return _squeeze(val, arg("symbol",ZML_DEFAULT_PARAM_NAME).toChar());
        else
            return _squeeze(val);

    }else if(method() == ZFMT_METHOD_STR_TCASE){ //!                 titleize
        return _titleCase(val);

    }else if(method() == ZFMT_METHOD_STR_TRIM){ //!                  trim( [pattern] )
        if(arg("pattern").isValid())
            return _trim(val, arg("pattern",ZML_DEFAULT_PARAM_NAME).toString());
        else
            return _trim(val);

    }else if(method() == ZFMT_METHOD_STR_UPCASE){ //!                upcase
        return _upcase(val);
    }

    return val;
}