예제 #1
0
LLView* LLInventoryPanel::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
	LLInventoryPanel* panel;

	std::string name("inventory_panel");
	node->getAttributeString("name", name);

	BOOL allow_multi_select = TRUE;
	node->getAttributeBOOL("allow_multi_select", allow_multi_select);

	LLRect rect;
	createRect(node, rect, parent, LLRect());

	std::string sort_order(INHERIT_SORT_ORDER);
	node->getAttributeString("sort_order", sort_order);

	panel = new LLInventoryPanel(name, sort_order,
								 rect, &gInventory,
								 allow_multi_select, parent);

	panel->initFromXML(node, parent);

	panel->postBuild();

	return panel;
}
예제 #2
0
파일: branch.c 프로젝트: ebruck/tig
static int
branch_compare(const void *l1, const void *l2)
{
	const struct branch *branch1 = ((const struct line *) l1)->data;
	const struct branch *branch2 = ((const struct line *) l2)->data;

	if (branch_is_all(branch1))
		return -1;
	else if (branch_is_all(branch2))
		return 1;

	switch (get_sort_field(branch_sort_state)) {
	case SORT_FIELD_DATE:
		return sort_order(branch_sort_state, timecmp(&branch1->time, &branch2->time));

	case SORT_FIELD_AUTHOR:
		return sort_order(branch_sort_state, ident_compare(branch1->author, branch2->author));

	case SORT_FIELD_NAME:
	default:
		return sort_order(branch_sort_state, strcmp(branch1->ref->name, branch2->ref->name));
	}
}
예제 #3
0
    void create_widget(const dictionary_t& parameters,
                       size_enum_t,
                       listbox_t*& listbox)
    {
        std::string name;
        std::string alt_text;
        long characters(25);
        long rows(0);
        bool sort(false);
        name_t sort_order("ascending");
        name_t selections("single");
        bool user_delete(false);
        bool browse_updates(false);
        array_t items;
        listbox_t::item_set_t item_set;
        GG::Clr color(GG::CLR_GRAY);
        GG::Clr interior_color(GG::CLR_ZERO);
        GG::Clr hilite_color(GG::CLR_SHADOW);
        GG::Clr label_color(GG::CLR_BLACK);
        GG::Clr item_text_color(GG::CLR_BLACK);
        name_t signal_id;
        array_t allowed_drop_types;

        implementation::get_localized_string(parameters, key_name, name);
        implementation::get_localized_string(parameters, key_alt_text, alt_text);
        get_value(parameters, key_characters, characters);
        get_value(parameters, static_name_t("rows"), rows);
        get_value(parameters, static_name_t("sort"), sort);
        get_value(parameters, static_name_t("sort_order"), sort_order);
        get_value(parameters, static_name_t("selections"), selections);
        get_value(parameters, static_name_t("user_delete"), user_delete);
        get_value(parameters, static_name_t("browse_updates"), browse_updates);
        get_value(parameters, key_items, items);
        implementation::get_color(parameters, static_name_t("color"), color);
        implementation::get_color(parameters, static_name_t("interior_color"), interior_color);
        implementation::get_color(parameters, static_name_t("hilite_color"), hilite_color);
        implementation::get_color(parameters, static_name_t("label_color"), label_color);
        implementation::get_color(parameters, static_name_t("item_text_color"), item_text_color);
        get_value(parameters, static_name_t("signal_id"), signal_id);
        get_value(parameters, static_name_t("allowed_drop_types"), allowed_drop_types);

        GG::Flags<GG::ListBoxStyle> style;
        if (!sort)
            style |= GG::LIST_NOSORT;

        get_sort_order_style(sort_order, style);
        get_selection_style(selections, style);

        if (user_delete)
            style |= GG::LIST_USERDELETE;

        if (browse_updates)
            style |= GG::LIST_BROWSEUPDATES;

        for (array_t::iterator first(items.begin()), last(items.end()); first != last; ++first) {
            item_set.push_back(any_regular_t(first->cast<dictionary_t>()));
            dictionary_t& back = item_set.back().cast<dictionary_t>();
            get_value(back, key_value);
            dictionary_t::iterator it = back.find(key_name);
            if (it != back.end() && it->second.type_info() == type_info<adobe::string_t>()) {
                it->second.assign(localization_invoke(it->second.cast<std::string>()));
            }
        }

        if (!rows && items.empty())
            rows = 8;

        std::vector<std::string> drop_types;
        for (array_t::iterator first(allowed_drop_types.begin()), last(allowed_drop_types.end()); first != last; ++first) {
            drop_types.push_back(first->cast<std::string>());
        }

        listbox = new listbox_t(name,
                                alt_text,
                                characters,
                                rows,
                                style,
                                item_set,
                                color,
                                interior_color,
                                hilite_color,
                                label_color,
                                item_text_color,
                                drop_types,
                                signal_id);
    }
예제 #4
0
파일: p165.cpp 프로젝트: omo/pcanswers
	void execute(const std::string& line)
	{
		std::stringstream ls(line);
		char cmd;
		ls >> cmd;
		switch (cmd) {
		case 'I': {
			int w, h;
			ls >> w;
			ls >> h;
			m_bitmap = bitmap_t(w, h);
		} break;
		case 'C': {
			m_bitmap.clear();
		} break;
		case 'S': {
			ls.get(); // skip whitespace
			std::string filename = read_line(ls);
			save(std::cout, filename);
		} break;
		case 'L': {
			int x, y;
			char c;
			ls >> x;
			ls >> y;
			ls >> c;
			//std::cout << "color:" <<  x << "," << y << "," << c << std::endl;
			m_bitmap.set_1(x, y, c);
		} break;
		case 'V': {
			int x, y1, y2;
			char c;
			ls >> x;
			ls >> y1;
			ls >> y2;
			ls >> c;
			sort_order(&y1, &y2);
			for (int i=y1; i<=y2; ++i) {
				m_bitmap.set_1(x, i, c);
			}
		} break;
		case 'H': {
			int x1, x2, y;
			char c;
			ls >> x1;
			ls >> x2;
			ls >> y;
			ls >> c;
			sort_order(&x1, &x2);
			for (int i=x1; i<=x2; ++i) {
				m_bitmap.set_1(i, y, c);
			}
		} break;
		case 'K': {
			int x1, x2, y1, y2;
			char c;
			ls >> x1;
			ls >> y1;
			ls >> x2;
			ls >> y2;
			ls >> c;
			for (int i=y1; i<=y2; ++i) {
				for (int j=x1; j<=x2; ++j) {
					//std::cout << "p:" << j << "," << i << std::endl;
					m_bitmap.set_1(j, i, c);
				}
			}
		} break;
		case 'F': {
			int x, y;
			char c;
			ls >> x;
			ls >> y;
			ls >> c;

			fill(x, y, c);
		} break;
		default:
			//std::cout << "unknown command:" << cmd << std::endl;
			break;
		}
	}