void ToolbarManager::getFrom(CReBarCtrl& ReBar, const string& aName) { dcassert(ReBar.IsWindow()); removeToolbarEntry(getToolbarEntry(aName)); ToolbarEntry* t = new ToolbarEntry(); string id, cx, bl,dl; t->setName(aName); t->setBandCount(ReBar.GetBandCount()); for(int i = 0; i < t->getBandCount(); i++) { dl = ((i > 0) ? "," : ""); REBARBANDINFO rbi; rbi.cbSize = sizeof(rbi); rbi.fMask = RBBIM_ID | RBBIM_SIZE | RBBIM_STYLE; ReBar.GetBandInfo(i, &rbi); id += dl + Util::toString(rbi.wID); cx += dl + Util::toString(rbi.cx); bl += dl + (((rbi.fStyle & RBBS_BREAK) != 0) ? "1" : "0"); } t->setID(id); t->setCX(cx); t->setBreakLine(bl); toolbarEntries.push_back(t); }
int ToolbarData::insertItem(String toolbar, String item, int position) { XOJ_CHECK_TYPE(ToolbarData); printf("ToolbarData::insertItem(%s, %s, %i);\n", toolbar.c_str(), item.c_str(), position); g_return_val_if_fail(isPredefined() == false, -1); std::vector<ToolbarEntry>::iterator it; for (it = this->contents.begin(); it != this->contents.end(); it++) { ToolbarEntry& e = *it; if (e.getName().equals(toolbar)) { printf("Toolbar found: %s\n", toolbar.c_str()); int id = e.insertItem(item, position); printf("return %i\n", id); return id; } } ToolbarEntry newEntry; newEntry.setName(toolbar); int id = newEntry.addItem(item); this->contents.push_back(newEntry); return id; }
void ToolbarManager::load(SimpleXML& aXml) { if(aXml.findChild("Rebars")) { aXml.stepIn(); while(aXml.findChild("Rebar")) { ToolbarEntry* t = new ToolbarEntry(); t->setName(aXml.getChildAttrib("Name")); t->setID(aXml.getChildAttrib("ID")); t->setCX(aXml.getChildAttrib("CX")); t->setBreakLine(aXml.getChildAttrib("BreakLine")); t->setBandCount(aXml.getIntChildAttrib("BandCount")); toolbarEntries.push_back(t); } aXml.stepOut(); } else { // Default toolbar layout - for MainFrame rebar ToolbarEntry* t = new ToolbarEntry(); t->setName("MainToolBar"); t->setID("60160,60163,60161,60162"); t->setCX("1056,214,731,268"); t->setBreakLine("1,0,1,0"); t->setBandCount(4); toolbarEntries.push_back(t); } }
void ToolbarData::load(GKeyFile* config, const char* group) { XOJ_CHECK_TYPE(ToolbarData); gsize length = 0; gchar** keys = g_key_file_get_keys(config, group, &length, NULL); if (keys == NULL) { return; } gchar* name = g_key_file_get_locale_string(config, group, "name", NULL, NULL); if (name != NULL) { this->name = name; g_free(name); } for (gsize i = 0; i < length; i++) { if (strcmp(keys[i], "name") == 0 || strncmp(keys[i], "name[", 5) == 0) { continue; } ToolbarEntry e; gsize keyLen = 0; e.setName(keys[i]); gchar** list = g_key_file_get_string_list(config, group, keys[i], &keyLen, NULL); for (gsize x = 0; x < keyLen; x++) { String s = list[x]; e.addItem(s.trim()); } this->contents.push_back(e); g_strfreev(list); } g_strfreev(keys); }