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; }
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)); } }
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); }
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; } }