/* サムネイルごとの情報をロードする */ static bool load_thumbnail_params(void) { int32_t flag_val; int i; /* 各サムネイルの情報を取得する */ thumbnail_count = 0; for(i = 0; i < THUMBNAIL_SIZE; i++) { /* ラベルを取得する */ thumbnail[i].label = get_string_param(PARAM_LABEL(i)); if (strcmp(thumbnail[i].label, "") == 0) break; /* すべてのサムネイルを処理した*/ /* 変数の値を求める */ if (!get_variable_by_string(get_string_param(PARAM_FLAG(i)), &flag_val)) return false; /* サムネイルを有効にするかを求める */ thumbnail[i].enabled = flag_val != 0; /* 表示位置を取得する */ thumbnail[i].x = get_int_param(PARAM_X(i)); thumbnail[i].y = get_int_param(PARAM_Y(i)); thumbnail_count++; } for(i = thumbnail_count; i < THUMBNAIL_SIZE; i++) thumbnail[i].enabled = false; return true; }
std::string KlassesDialog::g_param_flags_to_string(GParamFlags v) { #define xstr(s) str(s) #define str(s) #s #define PARAM_FLAG(NAME) { NAME, xstr(NAME) } std::map<int, std::string> values = { PARAM_FLAG(G_PARAM_READABLE), PARAM_FLAG(G_PARAM_WRITABLE), PARAM_FLAG(G_PARAM_CONSTRUCT), PARAM_FLAG(G_PARAM_CONSTRUCT_ONLY), PARAM_FLAG(G_PARAM_LAX_VALIDATION), PARAM_FLAG(G_PARAM_STATIC_NAME), PARAM_FLAG(G_PARAM_PRIVATE), PARAM_FLAG(G_PARAM_STATIC_NICK), PARAM_FLAG(G_PARAM_STATIC_BLURB), PARAM_FLAG(G_PARAM_EXPLICIT_NOTIFY), PARAM_FLAG(G_PARAM_DEPRECATED) }; std::string str; bool first = false; if (values.empty()) str = _("none"); for (auto value : values) { if (value.first & v) { if (first) str.append(", "); else first = true; str.append(value.second); } } return str; }