Esempio n. 1
0
/**
 *
 * @param widget
 * @param msg
 */
void cwt_msgbox_set_msg(CWT_WIDGET_PTR widget, const CWT_CHAR* msg)
{
	if( msg ) {
		CWT_WIDGET_PTR label;
		const CWT_CHAR *ptr = msg;
		StringBufferPtr sb;

		sb = strbuf_new_defaults();

		while( *ptr ) {
			if( *ptr == '\n' ) {
				label = cwt_new_widget(0, CWT_WT_LABEL, widget);
				cwt_label_set_text(label, strbuf_cstr(sb));
				strbuf_clear(sb);
			} else {
				strbuf_append_char(sb, *ptr);
			}
			ptr++;
		}

		if( strbuf_size(sb) > 0 ) {
			label = cwt_new_widget(0, CWT_WT_LABEL, widget);
			cwt_label_set_text(label, strbuf_cstr(sb));
		}

		strbuf_delete(sb);
		widget->need_layout = TRUE;
	}
}
Esempio n. 2
0
    static std::string s_getPackageName(const std::vector<FlaDefinition>& definitions, float scale)
    {
        strbuf_init_stack(result, 64);
        CLOVER_SCOPE_EXIT
        {
            strbuf_finish(result);
        };

        for (auto& def : definitions)
        {
            auto md5 = def.getDataMd5();
            strbuf_push_lstring(result, md5.c_str(), md5.size());
            strbuf_push_char(result, '_');
            strbuf_push_uint32(result, def.getId());
            strbuf_push_char(result, '_');
        }

        strbuf_push_uint32(result, static_cast<uint32_t>(scale * FlaSDK::getTextureContentScaleFactor() * 100));
        md5_state_t state;
        md5_init(&state);
        md5_append(&state, (md5_byte_t*)strbuf_cstr(result), (int)strbuf_length(result));

        md5_byte_t buf[16];
        md5_finish(&state, buf);

        return libra::str_md5HexString(buf);
    }
Esempio n. 3
0
char* read_file(char *path)
{
  HEX_ASSERT(path);

  Strbuf strbuf = strbuf_create();

  HEX_ASSERT(strbuf);

  char c;
  while( (c = fgetc(_f) ) != EOF ) {
    if(c == '\n') continue;
    char s[2];
    memset(s, 0, sizeof(s));
    snprintf(s, sizeof(s), "%c", c);
    strbuf_append(strbuf, s);
  }

  char *str = strdup(strbuf_cstr(strbuf));

  HEX_ASSERT(str);

  strbuf_free(&strbuf);

  return str;
}
Esempio n. 4
0
File: vtable.c Progetto: mazj/hex
/*
 * mingled name = 'name' + '_' + type + '_' + 'indent_level' 
 * */
char* vtable_mingle_name(VtableEntry entry)
{
  HEX_ASSERT(entry);
  HEX_ASSERT(entry->name);

  Strbuf strbuf = strbuf_create();
  HEX_ASSERT(strbuf);

  char type_str[2];
  char indent_level_str[5];
  
  snprintf(type_str, sizeof(type_str), "%u", (unsigned int)entry->type);
  snprintf(indent_level_str, sizeof(indent_level_str), "%u", entry->indent_level);

  strbuf_append(strbuf, (const char*)entry->name);
  strbuf_append(strbuf, "_");
  strbuf_append(strbuf, (const char*)type_str);
  strbuf_append(strbuf, "_");
  strbuf_append(strbuf, (const char*)indent_level_str);

  char *mingled_name = strbuf_cstr(strbuf);

  HEX_ASSERT(mingled_name);

  HEX_FREE(strbuf);

  return mingled_name;
}
Esempio n. 5
0
File: input.c Progetto: semenovf/cwt
void _cwt_render_input(CWT_WIDGET_PTR widget)
{
	CWT_INPUT_PTR input = CWT_CAST(widget, CWT_INPUT_PTR);
	CWT_VIEWPORT vp;
	CWT_STYLE_PTR style;
	CWT_RECT text_rect;
	const CWT_CHAR* text = strbuf_cstr(input->strbuf);

	_cwt_get_viewport(&vp);

	JQ_ASSERT(widget);

	/*_cwt_text_rect(0, 0, vp.width, vp.height, _CWT_WIDGET_STYLE(widget), text + input->start_pos, &text_rect);*/
	text_rect.left = 0;
	text_rect.top = 0;
	text_rect.width = vp.width;
	text_rect.height = vp.height;

	style = _CWT_WIDGET_STYLE(widget);

	_cwt_outtext_box(text + input->start_pos, &text_rect, &style->font, style->align, style->color, CWT_Transparent);

	if( cwt_widget_is_focused(widget) ) {
		int cursor_left = 0;
		CWT_CHAR *left_text;

		left_text = strbuf_substr(input->strbuf, input->start_pos, input->pos);
		if( left_text ) {
			_cwt_text_size_wh(&style->font, left_text, &cursor_left, NULL);
			JQ_FREE(left_text);
		}
		_cwt_input_render_cursor(cursor_left, text_rect.top, text_rect.height);
	}
}
Esempio n. 6
0
 static std::string s_key(lua_Debug* debug)
 {
     strbuf_init_stack(buf, 128);
     strbuf_push_string(buf, debug->source);
     strbuf_push_uint32(buf, debug->linedefined);
     auto result = strbuf_cstr(buf);
     strbuf_finish(buf);
     return result;
 }
Esempio n. 7
0
 static std::string sizeToString(const rbp::RectSize& size)
 {
     strbuf_init_stack(result, 32);
     CLOVER_SCOPE_EXIT
     {
         strbuf_finish(result);
     };
     strbuf_push_pair(result, size.width, size.height);
     return strbuf_cstr(result);
 }
Esempio n. 8
0
char *
htmlent_decode(const char *html)
{
  bool in_ent = false;
  struct strbuf *buf = strbuf_init();
  struct strbuf *ent = strbuf_init();
  char *res;
  const char *dec;
  
  while (*html) {
    char c = *html++;
    
    if (in_ent) {
      strbuf_addc(ent, c);
      
      if (c == ';') {
        char *ent_cstr = strbuf_cstr(ent);
        strbuf_clear(ent);
        
        in_ent = false;
        dec = htmlent_table_lookup_dec(ent_cstr);
        amz_free(ent_cstr);
        
        if (dec != NULL)
          strbuf_add(buf, dec);
      }
      
      continue;
    } else if (c == '&') {
      in_ent = true;
      strbuf_addc(ent, c);
      continue;
    }
    
    strbuf_addc(buf, c);
  }
  
  res = strbuf_cstr(buf);
  strbuf_free(buf);
  strbuf_free(ent);
  
  return res;
}
Esempio n. 9
0
 static std::string rectToString(const rbp::Rect& rt)
 {
     strbuf_init_stack(result, 32);
     CLOVER_SCOPE_EXIT
     {
         strbuf_finish(result);
     };
     strbuf_push_char(result, '{');
     strbuf_push_pair(result, rt.x, rt.y);
     strbuf_push_char(result, ',');
     strbuf_push_pair(result, rt.width, rt.height);
     strbuf_push_char(result, '}');
     return strbuf_cstr(result);
 }
Esempio n. 10
0
        static std::string s_getImageName(const std::string& name, int index)
        {
            strbuf_init_stack(imageName, 64);
            CLOVER_SCOPE_EXIT
            {
                strbuf_finish(imageName);
            };

            strbuf_push_lstring(imageName, name.c_str(), name.size());
            libra_path_remove_ext(imageName);

            strbuf_push_char(imageName, '_');
            strbuf_push_uint32(imageName, index);
            strbuf_push_string(imageName, ".png");
            return strbuf_cstr(imageName);
        }
Esempio n. 11
0
        std::string TextureFrames::transToLuaConfig(const std::string& name, int index)
        {
            strbuf_init_stack(result, 64);
            CLOVER_SCOPE_EXIT
            {
                strbuf_finish(result);
            };

            auto imageName = s_getImageName(name, index);
            s_transToLuaMetadata(result, _size, imageName);

            for (auto& frame : _frames)
            {
                s_transToLuaFrame(result, frame);
            }

            auto cstr = strbuf_cstr(result);
            return std::string(cstr, cstr + strbuf_length(result));
        }
Esempio n. 12
0
File: ftable.c Progetto: mazj/hex
char* ftable_mingle_name(FtableEntry entry)
{
  HEX_ASSERT(entry);
  HEX_ASSERT(entry->name);

  Strbuf strbuf = strbuf_create();
  HEX_ASSERT(strbuf);

  strbuf_append(strbuf, (const char*)entry->name);

  ParameterList paramlist = (ParameterList)entry->paramlist;
  while(paramlist) {
    Parameter param = paramlist->parameter;

    HEX_ASSERT(param);
    HEX_ASSERT(param->parameter_name);

    strbuf_append(strbuf, "_");
    strbuf_append(strbuf, (const char*)param->parameter_name);
    strbuf_append(strbuf, "-");

    if(param->type_specifier) {
      char buf[10];
      snprintf(buf, sizeof(buf), "%d", param->type_specifier);
      strbuf_append(strbuf, buf);
    } else {
      strbuf_append(strbuf, (const char*)param->custom_type);
    }

    paramlist = paramlist->next;
  }

  char *mingled_name = strdup(strbuf_cstr(strbuf));

  HEX_ASSERT(mingled_name);

  HEX_FREE(strbuf);

  return mingled_name;
}
Esempio n. 13
0
File: input.c Progetto: semenovf/cwt
const CWT_CHAR* cwt_input_text(CWT_WIDGET_PTR widget)
{
	CWT_INPUT_PTR input = (CWT_INPUT_PTR)widget;
	JQ_ASSERT(widget);
	return strbuf_cstr(input->strbuf);
}
Esempio n. 14
0
File: input.c Progetto: semenovf/cwt
void _cwt_size_min_input(CWT_WIDGET_PTR widget, CWT_SIZE *sz)
{
	CWT_INPUT_PTR input = CWT_CAST(widget, CWT_INPUT_PTR);
	JQ_ASSERT(widget);
	_cwt_text_size(&_CWT_WIDGET_STYLE(widget)->font, strbuf_cstr(input->strbuf), sz);
}