示例#1
0
BOOL CConfigDisplay::OnSkinChoose(CString skin)
{
    if (verifySkin(skin)) {
        m_sSkinName = skin;
    } else {
//		CString tmp = "Bad skin:" + skin + ", see " + (*m_callbacks->mbdir)();
//		tmp += "\\muzikbrowzer.log";
//		MBMessageBox("Corrupt skin", tmp, FALSE, FALSE);
        return FALSE;
    }

    m_sSkinName = skin;

    // Read skin def
    CString skindef = getSkin(MB_SKIN_DEF);
    m_regSD.init(skindef);
    m_regSD.ReadFile();

    // read skin def custom
    CString save = m_sSkinName;
    CString skindefcustom = getSkin(MB_SKIN_DEF_CUSTOM);
    RegistryKey regSDCustom(skindefcustom);
    regSDCustom.ReadFile();

    // overwrite custom on skin def
    m_regSD.Copy(regSDCustom);
    ReadReg(m_regSD);
    m_sSkinName = save;

    RegistryKey reg( HKEY_LOCAL_MACHINE, RegKey );
    reg.Write(RegWindowsSkinName, m_sSkinName);
    return TRUE;

//	initFontSels();
}
示例#2
0
Model* Model::clone(NodeCloneContext &context)
{
    Model* model = Model::create(getMesh());
    if (getSkin())
    {
        model->setSkin(getSkin()->clone(context));
    }
    Material* materialClone = getMaterial()->clone(context);
    model->setMaterial(materialClone); // TODO: Don't forget material parts
    materialClone->release();
    return model;
}
ActionBase::ResultE
SkeletonSkinningAlgorithm::intersectEnter(Action *action)
{
    SkinnedGeometry *skinGeo = getSkin();

    return skinGeo->intersect(action);
}
示例#4
0
CRCitesMenu::CRCitesMenu(CRGUIWindowManager * wm, LVDocView * docview, int numItems, lvRect & rc)
    : CRFullScreenMenu( wm, MCMD_CITES_LIST, lString16(_("Citations")), numItems, rc )
    , _docview(docview)
{
    CRGUIAcceleratorTableRef acc = _wm->getAccTables().get("bookmarks");
    if ( acc.isNull() )
        acc = _wm->getAccTables().get("menu");
    setAccelerators( acc );
    setSkinName(lString16("#cites-list"), lString16("#bookmarks"));
    int mc = getSkin()->getMinItemCount();
    if ( _pageItems < mc )
        _pageItems = mc;
    CRFileHistRecord * rec = docview->getCurrentFileHistRecord();
    LVPtrVector < CRBookmark > &bookmarks = rec->getBookmarks();
    for ( int i=0; i < bookmarks.length(); i++ ) {
        CRBookmark * bmk = bookmarks[i];
        if (!bmk || ((bmk->getType() != bmkt_comment && bmk->getType() != bmkt_correction)))
            continue;
        ldomXPointer p = docview->getDocument()->createXPointer( bmk->getStartPos() );
        if ( p.isNull() )
            continue;
        int page = docview->getBookmarkPage( p );
        /// get bookmark position text
        if ( page<0 )
            continue;
        CRBookmarkMenuItem * item = new CRBookmarkMenuItem( this, i, bmk, page );
        addItem( item );
    }
#ifdef CR_POCKETBOOK
    citesDialog = this;
#endif
    if (_items.length() == 0)
        createDefaultItem();
}
Action::ResultE
SkeletonSkinningAlgorithm::intersectEnter(Action *action)
{
    SkinnedGeometry *skinGeo = getSkin();

    return skinGeo->SkinnedGeometry::Inherited::intersectEnter(action);
}
示例#6
0
void CRBookmarkMenu::showContextMenu()
{
	CRBookmarkMenuItem *item = static_cast<CRBookmarkMenuItem *>(_items[_selectedItem]);
	CRMenuSkinRef skin = getSkin();
	CRRectSkinRef separatorSkin = skin->getSeparatorSkin();
    int separatorHeight = 0;
    if ( !separatorSkin.isNull() )
        separatorHeight = separatorSkin->getMinSize().y;

    lvRect clientRect;
    getClientRect(clientRect);
    lvPoint itemSize = getMaxItemSize();
	_contextMenu[2].type = item->getBookmark() ? ITEM_ACTIVE : ITEM_INACTIVE;
        int y = clientRect.top + (itemSize.y + separatorHeight) * (_selectedItem - _topItem) +
			((itemSize.y + separatorHeight)/4);
	if (_contextMenu[0].text == NULL) {
		_contextMenu[0].text = (char *)_("Set bookmark");
		_contextMenu[1].text = (char *)_("Go to bookmark");
		_contextMenu[2].text = (char *)_("Delete bookmark");
	}
	OpenMenu(_contextMenu, 
		_goToMode ? DCMD_BOOKMARK_GO_N : DCMD_BOOKMARK_SAVE_N,
		ScreenWidth()/4, 
		y, 
		handle_contextMenu);
}
Action::ResultE
CPUSkinningAlgorithm::intersectEnter(Action *action)
{
    Action::ResultE  res     = Action::Continue;
    SkinnedGeometry *skinGeo = getSkin    ();
    Skeleton        *skel    = getSkeleton();
    IntersectAction *iact    =
        boost::polymorphic_downcast<IntersectAction *>(action);

    CPUSkinningDataAttachmentUnrecPtr data = getCPUSkinningData(skinGeo);

    if(data == NULL)
    {
        data = CPUSkinningDataAttachment::create();
        skinGeo->addAttachment(data);
    }

    skel->intersectEnter(action, skinGeo);

    if(data->getDataValid() == false)
    {
        transformGeometry(skinGeo, skel, data);

        data->setDataValid(true);
    }

    intersectGeometry(iact, skinGeo, data);

    return res;
}
Action::ResultE
CPUSkinningAlgorithm::renderEnter(Action *action)
{
    Action::ResultE  res     = Action::Continue;
    SkinnedGeometry *skinGeo = getSkin    ();
    Skeleton        *skel    = getSkeleton();
    RenderAction    *ract    =
        boost::polymorphic_downcast<RenderAction *>(action); 

    OSG_ASSERT(skinGeo != NULL);
    OSG_ASSERT(skel    != NULL);

    CPUSkinningDataAttachmentUnrecPtr data = getCPUSkinningData(skinGeo);

    if(data == NULL)
    {
        data = CPUSkinningDataAttachment::create();
        skinGeo->addAttachment(data);
    }

    skel->renderEnter(action, skinGeo);

    if(data->getDataValid() == false)
    {
        transformGeometry(skinGeo, skel, data);

        data->setDataValid(true);
    }

    renderGeometry(ract, skinGeo, data);

    return res;
}
示例#9
0
void
CConfigDisplay::init() {
    CString dir;
    dir = (*m_callbacks->mbdir)();
    setDefaults();
    m_SkinDir = dir;
    m_SkinDir += "\\skins";

    RegistryKey reg( HKEY_LOCAL_MACHINE, RegKey );
    AutoBuf buf(1000);
    reg.Read("SkinsDir", buf.p,999,m_SkinDir);
    CString tmp = buf.p;
    if (tmp.GetLength()) {
        m_SkinDir = tmp;
    }

    RegistryKey realreg( HKEY_LOCAL_MACHINE, RegKey );

    realreg.Read(RegWindowsSkinName, buf.p, 999,m_sSkinName.GetBuffer(0));
    m_sSkinName = buf.p;

    if (IsWindow(m_SkinList.m_hWnd)) {
        int sel = m_SkinList.SelectString(-1, m_sSkinName);
        if (sel > -1) {
            m_SkinList.SetCurSel(sel);
        }
    }

    // Read skin def
    CString skindef = getSkin(MB_SKIN_DEF);
    if (skindef.GetLength() == 0) {
        return;
    }
    m_regSD.init(skindef);
    m_regSD.ReadFile();

    // read skin def custom
    CString save = m_sSkinName;
    CString skindefcustom = getSkin(MB_SKIN_DEF_CUSTOM);
    RegistryKey regSDCustom(skindefcustom);
    regSDCustom.ReadFile();

    // custom overlays standard
    m_regSD.Copy(regSDCustom);
    ReadReg(m_regSD);
    m_sSkinName = save;
}
示例#10
0
const CString CConfigDisplay::getSkin(const CString skinname,
                                      const CString key) {
    CString saveit = m_sSkinName;
    m_sSkinName = skinname;
    CString skin = getSkin(key);
    m_sSkinName = saveit;
    return skin;
}
示例#11
0
void CommentableObjectViewer::renderPosts(shared_ptr<XMLPortalExporter> exporter)
{
	if(getObject() == nullptr || getObject()->allowChild(portalObjectTypePost) == false)
		return;

	// Calcola il numero totale di posts
	uint32 total_posts = getEntity()->getChildsCount(getDatabase(), portalObjectTypePost);
	if(total_posts == 0)
		return;

	// Numero di posts da visualizzare per pagina
	uint32 posts_to_show = getSkin()->getPagerItems();
	// Inizializza l'offset di estrazione
	uint32 offset = conversions::from_utf16<uint32>(getRequest()->getUrlParam(OS_URL_PARAM_OFFSET));

	// Corregge l'offset se necessario
	adjustOffset(total_posts, posts_to_show, offset);

	objects_posts_list posts;
	// Estrae le risposte nell'intervallo richiesto
	shared_ptr<EntitiesEntities> post_childs = getEntity()->getChilds(getDatabase(), portalObjectTypePost, RangeUint32(offset, posts_to_show));
	for(EntitiesEntities::iterator i = post_childs->begin(); i != post_childs->end(); ++i)
	{
		// Carica la riposta corrente
		shared_ptr<EntitiesEntity> post_entity = post_childs->get(getDatabase(), *i);
		if(post_entity != nullptr)
		{
			// Calcola la revisione corrente della risposta
			shared_ptr<ObjectsPost> current_post = objects_post_cast(post_entity->getCurrent());
			if(current_post != nullptr)
				posts.push_back(current_post);
		}
	}

	if(posts.empty() == false)
	{
		shared_ptr<XMLNode> posts_node = exporter->getNode(OS_PORTAL_OBJECT_POST_GROUPNAME);
		for(objects_posts_list::const_iterator i = posts.begin(); i != posts.end(); ++i)
		{
			shared_ptr<XMLPortalExporter> postExporter(OS_NEW XMLPortalExporter(posts_node->addChild(OS_PORTAL_OBJECT_POST_TYPENAME), exporter->getPage(), exporter->getMode()));
			renderPost(postExporter, *i);
		}
	}

	createPager(getSkin(), exporter->getRoot(), total_posts, posts_to_show, offset);
}
void CPUSkinningAlgorithm::adjustVolume(Volume &volume)
{
    SkinnedGeometry *skinGeo = getSkin();

    if(skinGeo != NULL)
    {
        skinGeo->SkinnedGeometry::Inherited::adjustVolume(volume);
    }
}
Action::ResultE
SkeletonSkinningAlgorithm::renderLeave(Action *action)
{
    SkinnedGeometry *skinGeo = getSkin();
    Skeleton        *skel    = getSkeleton();

    skel->renderLeave(action, skinGeo);

    return Action::Continue;
}
示例#14
0
Drawable* Model::clone(NodeCloneContext& context)
{
    Model* model = Model::create(getMesh());
    if (!model)
    {
        GP_ERROR("Failed to clone model.");
        return NULL;
    }

    if (getSkin())
    {
        model->setSkin(getSkin()->clone(context));
    }
    if (getMaterial())
    {
        Material* materialClone = getMaterial()->clone(context);
        if (!materialClone)
        {
            GP_ERROR("Failed to clone material for model.");
            return model;
        }
        model->setMaterial(materialClone);
        materialClone->release();
    }
    if (_partMaterials)
    {
        GP_ASSERT(_partCount == model->_partCount);
        for (unsigned int i = 0; i < _partCount; ++i)
        {
            if (_partMaterials[i])
            {
                Material* materialClone = _partMaterials[i]->clone(context);
                model->setMaterial(materialClone, i);
                materialClone->release();
            }
        }
    }
    return model;
}
Action::ResultE
GPUSkinningAlgorithm::renderLeave(Action *action)
{
    Action::ResultE  res     = Action::Continue;
    SkinnedGeometry *skinGeo = getSkin();
    Skeleton        *skel    = getSkeleton();

    skel->renderLeave(action, skinGeo);

    res = skinGeo->SkinnedGeometry::Inherited::renderLeave(action);

    return res;
}
示例#16
0
void CConfigDisplay::OnMakedefault()
{
    // For internal use only. Copies Custom settings into
    // default skindef.
    CString skindef = getSkin(MB_SKIN_DEF);

    RegistryKey regSD(skindef);

    regSD.ReadFile();

    StoreReg(regSD);
    regSD.WriteFile();

}
示例#17
0
void Jobs::onInit()
{
	PageBase::onInit();

	m_showAll->setID("showAll");
	m_showAll->setAutoPostBack(true);
	m_showAll->setCaption(getText("main.pages.jobs.show_all"));

	shared_ptr<XMLDocument> document(OS_NEW XMLDocument());
	m_pageTemplate.reset(OS_NEW HtmlXSLControl(loadStylesheet(getSkin()->getTemplatePath(_S("jobs.xsl"))), document));
	getArea(pageAreaContent)->getControls()->add(m_pageTemplate);

	m_pageTemplate->addChildParam(m_showAll);
}
示例#18
0
void JobDetail::onLoad()
{
	PageBase::onLoad();

	// Ottiene l'id dell'utente richiesto
	int id = conversions::from_utf16<uint32>(getUrlID());

	shared_ptr<XMLDocument> document(OS_NEW XMLDocument());	
	
	shared_ptr<XMLExporter> exporter(OS_NEW XMLExporter(document->create(_S("job"))));

	// VERYURGENT: abolire il ciclo for	

	Engine::BackgroundJobs::const_iterator i;

	shared_ptr<Engine::BackgroundJobs> jobs = Engine::instance()->getBackgroundJobs();	

	if(jobs != nullptr)
	{
		for(i = jobs->begin(); i != jobs->end(); ++i)
		{
			shared_ptr<IBackgroundJob> job = *i;
			if(job->getID() == id)
			{
				Jobs::exportJob(exporter, job, false);				
			}
		}
	}

	jobs = Engine::instance()->getLastCompletedBackgroundJobs();
	if(jobs != nullptr)
	{
		for(i = jobs->begin(); i != jobs->end(); ++i)
		{
			shared_ptr<IBackgroundJob> job = *i;
			if(job->getID() == id)
			{
				Jobs::exportJob(exporter, job, true);				
			}
		}
	}

	String path = getSkin()->getTemplatePath(_S("job_detail.xsl"));
	shared_ptr<HtmlXSLControl> pageTemplate(OS_NEW HtmlXSLControl(loadStylesheet(path), document));	
	
	// Carica il template di riferimento
	getControls()->add(pageTemplate);
	
}
示例#19
0
void CConfigDisplay::OnOK()
{
    m2v();
    copy2lf(m_lfTitles, m_lfPanel, m_lfColHdr/*,m_lfCurPlay*/);

    int sel = m_SkinList.GetCurSel();
    if (sel > -1) {
        m_SkinList.GetLBText(sel, m_sSkinName);
    } else {
        m_SkinList.GetWindowText(m_sSkinName);
    }

    sel = m_BorderWidth.GetCurSel();
    if (sel > -1) {
        CString tmp;
        m_BorderWidth.GetLBText(sel, tmp);
        m_vBorderWidth = atoi(tmp);
    }

    RegistryKey realreg( HKEY_LOCAL_MACHINE, RegKey );
    realreg.Write(RegWindowsSkinName, m_sSkinName);

    CString skindefcustom = getSkin(MB_SKIN_DEF_CUSTOM, FALSE);
    RegistryKey regSDCustom(skindefcustom);

    // This ReadFile() preserves any extra settings in SkinDefCustom file
    // which may have been put there manually.
    regSDCustom.ReadFile();

    StoreReg(regSDCustom);
    regSDCustom.WriteFile();

    if (m_Modified) {
        init();
        readSkins();
        (*m_callbacks->redraw)();
    }
    m_Modified = FALSE;
    modified(FALSE);

    sel = m_SkinList.SelectString(-1, m_sSkinName);
    m_SkinList.SetCurSel(sel);

    CPropertyPage::OnOK();
}
示例#20
0
void CConfigDisplay::OnSwapSettingsButton()
{
    CString msg ="Choosing \"Ok\" will restore the skin default\r\ncolor/bold/size/font settings. If you then\r\nclick Apply or Ok you will lose any custom\r\nsettings you have made.\r\nClick Ok to proceed or Cancel.";
    int r = MBMessageBox("Caution", msg, FALSE, TRUE);

    if (1 == r) {
        CString skindef = getSkin(MB_SKIN_DEF);
        m_regSD.init(skindef);
        m_regSD.ReadFile();
        ReadReg(m_regSD);
        UpdateData(FALSE);
        initFontSels();
        showSample();
        modified(TRUE);
        RedrawWindow();
    } // else 0

}
示例#21
0
void CommentableObjectViewer::_createLastPosts()
{
	// Calcola il numero di posts totali
	uint32 total_posts = getEntity()->getChildsCount(getDatabase(), portalObjectTypePost);
	// Calcola il numero di risposte da visualizzare
	uint32 posts_count = utils::min<uint32>(total_posts, getSkin()->getPagerItems());
	// Carica i posts
	shared_ptr<EntitiesEntities> posts = getEntity()->getChilds(getDatabase(), portalObjectTypePost, RangeUint32(total_posts - posts_count, posts_count));
	if(posts->empty() == false)
	{
		shared_ptr<PostViewer> posts_viewer(OS_NEW PostViewer());
		getControls()->add(posts_viewer);
		// Scorre gli ultimi posts dal pi recente
		for(EntitiesEntities::reverse_iterator i = posts->rbegin(); i != posts->rend(); ++i)
		{
			posts_viewer->addPost(posts->get(getDatabase(), *i));
		}
	}
}
示例#22
0
void Maintenance::onLoad()
{
	PageBase::onLoad();
	
	/*
	shared_ptr<Portal> portal = getPortalFromUrl();
	if(portal == nullptr)
	{
		showError(_S("Invalid portal"));
		return;
	}
	*/

	if(getRequest()->hasUrlParam(_W("crash"))) // TEMP, x test crash report
	{
		int32 *pI=nullptr;
		*pI = 5;
	}

	/*
	for(int i=0;i<100;i++)
	{
		shared_ptr<HtmlDiv> div(OS_NEW HtmlDiv());
		getArea(pageAreaContent)->getControls()->add(div);
	}
	*/


	shared_ptr<XMLDocument> document(OS_NEW XMLDocument());
	shared_ptr<XMLNode> root = document->create(_S("maintenance"));
	String path = getSkin()->getTemplatePath(_S("maintenance.xsl"));
	shared_ptr<HtmlXSLControl> pageTemplate(OS_NEW HtmlXSLControl(loadStylesheet(path), document));
	getArea(pageAreaContent)->getControls()->add(pageTemplate);

	root->setAttributeString(_S("stability_restart_href"), getEventCommand(EVENT_ONSTABILITYRESTART));
	root->setAttributeString(_S("stability_rebuild_href"), getEventCommand(EVENT_ONSTABILITYREBUILD));
	root->setAttributeString(_S("lucene_rebuild_href"), getEventCommand(EVENT_ONLUCENEREBUILD));
	root->setAttributeString(_S("lucene_optimize_href"), getEventCommand(EVENT_ONLUCENEOPTIMIZE));
	root->setAttributeString(_S("database_vacuum_href"), getEventCommand(EVENT_ONDATABASEVACUUM));
	root->setAttributeString(_S("database_rebuild_indexes_href"), getEventCommand(EVENT_ONDATABASEREBUILDINDEXES));
	root->setAttributeString(_S("database_analyze_href"), getEventCommand(EVENT_ONDATABASEANALYZE));
}
示例#23
0
文件: Form.cpp 项目: 5guo/GamePlay
void Form::update(float elapsedTime)
{
    if (isDirty())
    {
        updateBounds();

        // Cache themed attributes for performance.
        _skin = getSkin(_state);
        _opacity = getOpacity(_state);

        GP_ASSERT(_layout);
        if (_scroll != SCROLL_NONE)
        {
            updateScroll();
        }
        else
        {
            _layout->update(this, Vector2::zero());
        }
    }
}
示例#24
0
String CommentableObjectViewer::localizePost(const EntityID &id)
{
	String href;

	shared_ptr<EntitiesEntity> entity = getPortal()->getEntity(getDatabase(), id);
	if(entity != nullptr)
	{
		shared_ptr<ObjectsPost> post = objects_post_cast(entity->getCurrent());
		if(post != nullptr)
		{
			shared_ptr<EntitiesEntity> parent_entity = getPortal()->getEntity(getDatabase(), post->getParent());
			if(parent_entity != nullptr)
			{
				shared_ptr<DbSqlSelect> select;
				// Ottiene la select per l'estrazione dei posts
				parent_entity->getChildsStatement(getDatabase(), portalObjectTypePost, RangeUint32::EMPTY, true, false, false, select);
				// Aggiunge come limite la data del post specificato per localizzarne l'indice
				select->where.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::SUBMIT_DATE, DBTABLES::SNAPSHOT_OBJECTS_TABLE), Convert::toSQL(entity->getEntitySubmitDate()), DbSqlCondition::cfMinor | DbSqlCondition::cfEqual | DbSqlCondition::cfAnd);

				ordered_map<std::wstring, std::wstring> params;
				// Calcola il numero di posts fino a quello specificato
				uint32 count = parent_entity->getChildsCount(getDatabase(), portalObjectTypePost, select);
				if(count > 0)
				{
					// Ottiene il numero
					uint32 pager_items = getSkin()->getPagerItems();
					// Calcola l'offset per la visualizzazione del post
					uint32 offset = static_cast<uint32>(count/pager_items)*pager_items;
					if(offset > 0)
						params.set(OS_URL_PARAM_OFFSET, conversions::to_wstring(offset));
				}

				// Genera un link al padre con ancora l'id del post
				href = HttpParser::createAnchor(parent_entity->getViewLink(getPortal(), params), entity->getEntityID().getString());
			}
		}
	}

	return href;
}
示例#25
0
CRBookmarkMenu::CRBookmarkMenu(CRGUIWindowManager * wm, LVDocView * docview, int numItems, lvRect & rc, bool goToMode)
    : CRFullScreenMenu( wm, MCMD_BOOKMARK_LIST, lString16(_("Bookmarks")), numItems, rc )
    , _docview(docview)
{
    CRFileHistRecord * bookmarks = docview->getCurrentFileHistRecord();
    CRGUIAcceleratorTableRef acc = _wm->getAccTables().get("bookmarks");
    if ( acc.isNull() )
        acc = _wm->getAccTables().get("menu");
    setAccelerators( acc );
    setSkinName(lString16("#bookmarks"));
    int mc = getSkin()->getMinItemCount();
    if ( _pageItems < mc )
        _pageItems = mc;
    int n = bookmarks->getLastShortcutBookmark()+1;
    n = (n + _pageItems - 1) / _pageItems * _pageItems;
    int minitems = (MIN_BOOKMARK_ITEMS + _pageItems - 1) / _pageItems * _pageItems;
    if ( n<minitems )
        n = minitems;
    for ( int i=1; i<=n; i++ ) {
        CRBookmark * bm = bookmarks->getShortcutBookmark(i);
        int page = 0;
        if ( bm ) {
            ldomXPointer p = docview->getDocument()->createXPointer( bm->getStartPos() );
            if ( !p.isNull() ) {
                /// get page number by bookmark
                page = docview->getBookmarkPage( p );
                /// get bookmark position text
                if ( page<0 )
                    bm = NULL;
            }
        }
        CRBookmarkMenuItem * item = new CRBookmarkMenuItem( this, i, bm, page );
        addItem( item );
    }
    setMode( goToMode );
#ifdef CR_POCKETBOOK
    bmkDialog = this;
#endif
}
示例#26
0
void CRCitesMenu::showContextMenu()
{
    CRBookmarkMenuItem *item = static_cast<CRBookmarkMenuItem *>(_items[_selectedItem]);
    if (item->getBookmark() == NULL)
        return;
    CRMenuSkinRef skin = getSkin();
    CRRectSkinRef separatorSkin = skin->getSeparatorSkin();
    int separatorHeight = 0;
    if ( !separatorSkin.isNull() )
        separatorHeight = separatorSkin->getMinSize().y;
    lvRect clientRect;
    getClientRect(clientRect);
    lvPoint itemSize = getMaxItemSize();
    int y = clientRect.top + (itemSize.y + separatorHeight) * (_selectedItem - _topItem) +
                        ((itemSize.y + separatorHeight)/4);
    if (_cites_contextMenu[0].text == NULL) {
        _cites_contextMenu[0].text = (char *)_("Go to citation");
        _cites_contextMenu[1].text = (char *)_("Delete citation");
    }
    OpenMenu(_cites_contextMenu, DCMD_BOOKMARK_GO_N, ScreenWidth()/4, y,
                handle_citesContextMenu);
}
示例#27
0
void ObjectDetail::onLoad()
{
	PageBase::onLoad();

	// Ottiene l'id dell'utente richiesto
	EntityID id = getUrlID().to_ascii();

	shared_ptr<XMLDocument> document(OS_NEW XMLDocument());	
	shared_ptr<XMLNode> nodeRoot = document->create(_S("object"));

	shared_ptr<EntitiesEntity> entity = getPortal()->getEntity(getDatabase(), id);	
	if(entity != nullptr)
	{
		shared_ptr<XMLPortalExporter> exporter(OS_NEW XMLPortalExporter(nodeRoot, get_this_ptr<IPortalPage>(), XMLPortalExporter::emFull, true));
		entity->exportXML(exporter);		
	}
	
	String path = getSkin()->getTemplatePath(_S("object_detail.xsl"));
	shared_ptr<HtmlXSLControl> pageTemplate(OS_NEW HtmlXSLControl(loadStylesheet(path), document));	
	
	// Carica il template di riferimento
	getControls()->add(pageTemplate);	
}
示例#28
0
void CRRecentBooksMenu::showContextMenu()
{
	CRRecentBookMenuItem *item = static_cast<CRRecentBookMenuItem *>(getItems()[_selectedItem]);
	CRMenuSkinRef skin = getSkin();
	CRRectSkinRef separatorSkin = skin->getSeparatorSkin();
    int separatorHeight = 0;
    if ( !separatorSkin.isNull() )
        separatorHeight = separatorSkin->getMinSize().y;

    lvRect clientRect;
    getClientRect(clientRect);
    lvPoint itemSize = getMaxItemSize();
        int y = clientRect.top + (itemSize.y + separatorHeight) * (_selectedItem - _topItem) +
			((itemSize.y + separatorHeight)/4);
	if (_contextMenu[0].text == NULL) {
		_contextMenu[0].text = (char *)_("Open book");
		_contextMenu[1].text = (char *)_("Delete record");
	}
	OpenMenu(_contextMenu, MCMD_OPEN_RECENT_BOOK,
		ScreenWidth()/4, 
		y, 
		handle_contextMenu);
}
示例#29
0
String FileEditor::getTemplatePath()
{
	return getSkin()->getTemplatePath(_S("file_editor.xsl"));
}
Action::ResultE
SkeletonSkinningAlgorithm::renderEnter(Action *action)
{
    Action::ResultE  res  = Action::Continue;
    RenderAction    *ract =
        boost::polymorphic_downcast<RenderAction *>(action);

    SkinnedGeometry *skinGeo = getSkin();
    Skeleton        *skel    = skinGeo->getSkeleton();

    skel->renderEnter(action, skinGeo);

    const Skeleton::MFJointsType        *joints       = skel->getMFJoints();
    const Skeleton::MFParentJointsType  *parentJoints =
        skel->getMFParentJoints();
    const Skeleton::MFJointMatricesType *jointMats    =
        skel->getMFJointMatrices();

    UInt32 numJoints = joints->size32();

#ifndef OSG_SKELETON_SKINNING_ALGO_DRAW_AXIS
    _mfDrawPositions.resize(numJoints);
    _mfDrawIndex    .clear (         );

    for(UInt32 i = 0; i < numJoints; ++i)
    {
        (*jointMats)[i].mult(Pnt3f(0.f, 0.f, 0.f),
                             _mfDrawPositions[i]  );

        if((*parentJoints)[i] != NULL)
        {
            _mfDrawIndex.push_back(i                               );
            _mfDrawIndex.push_back((*parentJoints)[i]->getJointId());
        }
    }

#else
    Real32 axisLen = 1.f;

    _mfDrawPositions.resize(4 * numJoints);
    _mfDrawIndex    .clear (             );

    for(UInt32 i = 0; i < numJoints; ++i)
    {
        (*jointMats)[i].mult(Pnt3f(0.f, 0.f, 0.f),
                             _mfDrawPositions[4 * i + 0]);

        if((*parentJoints)[i] != NULL)
        {
            _mfDrawIndex.push_back(4 * i                                + 0);
            _mfDrawIndex.push_back(4 * (*parentJoints)[i]->getJointId() + 0);

            Vec3f vec =
                _mfDrawPositions[4 * i                                + 0] -
                _mfDrawPositions[4 * (*parentJoints)[i]->getJointId() + 0];

            axisLen = 0.2f * vec.length();
            axisLen = 1.f;
        }
        else
        {
            axisLen = 1.f;
        }

        (*jointMats)[i].mult(
            Pnt3f(axisLen, 0.f,     0.f    ), _mfDrawPositions[4 * i + 1]);
        (*jointMats)[i].mult(
            Pnt3f(0.f,     axisLen, 0.f    ), _mfDrawPositions[4 * i + 2]);
        (*jointMats)[i].mult(
            Pnt3f(0.f,     0.f,     axisLen), _mfDrawPositions[4 * i + 3]);

        _mfDrawIndex.push_back(4 * i + 0);
        _mfDrawIndex.push_back(4 * i + 1);
        _mfDrawIndex.push_back(4 * i + 0);
        _mfDrawIndex.push_back(4 * i + 2);
        _mfDrawIndex.push_back(4 * i + 0);
        _mfDrawIndex.push_back(4 * i + 3);
    }
#endif // #ifndef OSG_SKELETON_SKINNING_ALGO_DRAW_AXIS

    DrawEnv::DrawFunctor   drawFuncSkinAlgo =
        boost::bind(&SkeletonSkinningAlgorithm::drawFunc, this, _1);
    PrimeMaterial         *skelMat          = getDefaultUnlitMaterial();
    State                 *state            = skelMat->getState      ();

    ract->dropFunctor(drawFuncSkinAlgo, state, skelMat->getSortKey());

    return res;
}